Неправильные символы Юникода - PullRequest
1 голос
/ 09 июня 2010

Очевидно, что-то глупое я делаю.Диаграмма Unicode для индексов и надстрочных знаков говорит, что # 00B2 - это верхний индекс 2, но я получаю зашифрованный вывод.0078 - это х, но я получаю N, а 0120 - это х.Я читаю неправильное руководство?


РЕДАКТИРОВАТЬ

$x = 'N';

print html_entity_decode($x, ENT_NOQUOTES, 'UTF-8') . "\n";

1 Ответ

3 голосов
/ 09 июня 2010

Я думаю, что вы можете путать десятичные и шестнадцатеричные значения.Например, шестнадцатеричное 0x78 - это строчные буквы x, а десятичное 78 (шестнадцатеричное 0x4e) - прописные буквы N.

В HTML можно указывать объекты Unicode как десятичные с использованием &#n; или как шестнадцатеричные с &#xn; (где n заменяется десятичным или шестнадцатеричным символьным кодом).Для верхнего индекса 2 вы могли бы использовать ² или ².

. В вашем примере кода вы декодируете сущность N.Это десятичная сущность, поэтому вы получите ожидаемый результат (верхний регистр N).Таблицы Unicode, к которым вы привязаны, используют шестнадцатеричный код.Чтобы получить строчную букву x, вы должны будете использовать x в качестве ввода.

...