попробуйте код ниже:
<?php
echo "ORD ~ = ".ord("~");
На основе расширенной таблицы ASCII -> http://www.ascii-code.com/ вывод является
ORD ~ = 126
Это правильно, но тогда при выводе чего-либо в расширенную таблицу ASCII, например Ø:
<?php
echo "ORD Ø = ".ord("Ø");
Дает:
ORD Ø = 195
В то время как в связанной расширенной таблице ASCII правильный код для «Ø» - 216. То же самое, например. для √ (ord("√") выводит 226
, в то время как правильный расширенный символ ASCII для 226 — â, а √ отсутствует даже в таблице ).
Итак, мой вопрос заключается в том, что строки PHP в основном представляют собой массив строк ($str[0] для первого символа, $str[1] для второго, типа C и т. д...), и поскольку PHP не имеют тип char, как PHP обрабатывает 1-байтовый символ, когда он обрабатывает его отдельно, например используя предыдущую функцию ord() и функции pack() и unpack()?
Являются ли символы PHP беззнаковыми или они подписаны? Какая разница?
Как я должен интерпретировать эту фразу A string is series of characters, where a character is the same as a byte. This means that PHP only supports a 256-character set
, взятую из руководства по PHP?
256-character
означает, что он поддерживает расширенный ASCII? Но почему тогда эти различия при вызове ord() для расширенных символов ASCII?
Спасибо за внимание!