Метод toByteString
Метод toByteString класса UnicodeString преобразует текущую Unicode-строку в объект класса ByteString. Метод не принимает параметров и возвращает новый экземпляр ByteString, содержащий те же байты, что и исходная строка. Это полезно, когда нужно перейти от работы с текстом в Unicode к работе с сырыми бинарными данными: например, для хеширования, шифрования или передачи по сети.
Синтаксис
public function toByteString(): ByteString
Пример
Давайте создадим Unicode-строку и преобразуем её в ByteString:
<?php
use Symfony\Component\String\UnicodeString;
$ustr = new UnicodeString('abcde');
$bstr = $ustr->toByteString();
echo get_class($bstr);
?>
Результат выполнения кода:
"Symfony\Component\String\ByteString"
Пример
Давайте убедимся, что длина строки в байтах совпадает с длиной исходной Unicode-строки:
<?php
use Symfony\Component\String\UnicodeString;
$ustr = new UnicodeString('abcde');
$bstr = $ustr->toByteString();
echo $bstr->length();
?>
Результат выполнения кода:
5
Пример
Давайте получим байтовое представление Unicode-строки с многобайтовыми символами:
<?php
use Symfony\Component\String\UnicodeString;
$ustr = new UnicodeString('привет');
$bstr = $ustr->toByteString();
echo $bstr->length();
?>
Результат выполнения кода:
12
Каждый символ кириллицы занимает 2 байта в кодировке UTF-8, поэтому длина байтовой строки равна 12.
Смотрите также
-
класс
UnicodeString,
который представляет Unicode-строку -
класс
ByteString,
который представляет бинарную строку -
метод
toString,
который возвращает строковое представление объекта -
метод
toUnicodeString,
который выполняет обратное преобразование