ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(string.length() * 2 + 2);
byteArrayOutputStream.write(new byte[]{(byte)0xFF,(byte)0xFE});
byteArrayOutputStream.write(string.getBytes("UTF-16LE"));
return byteArrayOutputStream.toByteArray();
EDIT: Перечитывая свой вопрос, я вижу, что вы скорее избегаете распределения двух массивов. К сожалению, API не дает вам этого, насколько я знаю. (Был метод, но он устарел, и вы не можете указать кодировку с ним).
Я написал выше, прежде чем я увидел ваш комментарий, я думаю, что ответ на использование классов nio включен правильный трек. Я смотрел на это, но я недостаточно знаком с API, чтобы узнать, как вы это делаете.
Вы должны освободить ваше соединение с помощью метода PDostatement :: Clindecursor ()
http://www.php.net/manual/en/pdostatement.closecursor.php
Я считаю, что
foreach($phones as $phone)
{
$stmt = db::getInstance()->prepare("CALL phones(:phone)");
$stmt->bindParam(':phone', $phone, PDO::PARAM_INT, 10);
$stmt->execute();
$stmt->closeCursor()
$result[] = db::getInstance()->query("SELECT @phone;")->fetchAll(PDO::FETCH_ASSOC);
}
должен Сделай это для вас