Вывод результата PHP pack () ... Нормальный? - PullRequest
0 голосов
/ 28 апреля 2011

Этот код:

<?php

$string = "I love chicken.";
$binary = pack("a15", $string);
echo $binary;

?>

Выходы "Я люблю курицу".Это нормально?Разве он не должен выдавать какой-то бибаршийский бред?

Ответы [ 3 ]

4 голосов
/ 28 апреля 2011

Да, это нормально. Вы упаковываете 15-символьную строку в 15-байтовую NULL-дополняемую строку, так что нет никакого "тарабарщины" (потому что твоя оригинальная строка хранится в памяти "таким образом".) Вы бы увидели бред Например, вы пытались упаковать целые числа и т. д.

3 голосов
/ 28 апреля 2011

Почему? «Двоичное» представление строки (в однобайтовой кодировке) является именно этой строкой, поэтому в этом случае нет необходимости что-либо преобразовывать.

0 голосов
/ 28 апреля 2011

Нет, если вы упаковываете строку ASCII как строку ASCII той же длины. Если вы измените a15 на a16, то pack будет заполнять вывод значениями NULL, которые не видны, если вы выводите эхо, но отображаются, если вы выполняете var_dump ()

...