PHP Unicode символов вопросы - PullRequest
0 голосов
/ 28 февраля 2011

Вот ссылка, которую я нашел, у которой даже есть персонаж, с которым мне нужно играть для других моих проектов.

http://www.fileformat.info/info/unicode/char/2446/index.htm

Есть поле с названием: "Кодировки "на этой странице.И я задаюсь вопросом о некоторых строках.

Мне, очевидно, нужен курс по этому виду вещей, но мне интересно, в чем разница между "HTML Entity (десятичный)" и "HTML Entity (hex))».

Самое смешное, что меня смущает, я выкидываю этих персонажей на веб-страницу, и они отображаются нормально.Но я не указал никакой кодировки UTF-8 на странице php.

<?php
$string1 = '&#x2446;';
$string2 = '&#9286;';

echo $string1;
echo '<br>';
echo $string2;
?>

Знает ли браузер, как отображать оба автоматически?И чтобы сделать это еще более странным, я могу видеть только эти символы на моем Mac в Firefox.Но моя коробка с окнами не хочет их показывать.Я проверил это в Chrome и Firefox.Нужно ли указывать браузерам правильно их просматривать?Или это модификация операционной системы?

Ответы [ 3 ]

2 голосов
/ 28 февраля 2011

Если быть точным, то ни одна ссылка на сущность . &amp; является ссылкой на сущность, которая ссылается на сущность с именем amp , которая определяется как:

<!ENTITY amp     CDATA "&#38;"   -- ampersand, U+0026 ISOnum -->

Здесь вы можете видеть, что значение сущности является просто еще одной ссылкой: &#38;.

&#x2446; и &#9286; являются «просто» символьными ссылками ( числовые символьные ссылки , а точнее) и ссылаются на символы путем указания позиции кода символа в Универсальный набор символов , т.е. набор символов Unicode.

2 голосов
/ 28 февраля 2011

Они оба являются допустимыми числовыми объектами HTML, и браузер действительно знает, как их декодировать.Разница в том, что первое - это шестнадцатеричное число, а второе - десятичное.

0x2446 = 9286

Обратите внимание, что 0x означает шестнадцатеричное.

обратите внимание, что это хорошая практика, чтобы ваш сервер всегда явно указывал кодировку.W3C объясняет , как это сделать.UTF-8 - хороший выбор.

Если вы используете любую кодировку Unicode, вы всегда можете поместить символ прямо на своей странице, чтобы вам не приходилось использовать сущности.

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

Вы можете использовать любой «HTML-объект» в любой кодировке, и на практике, если вы установили соответствующие шрифты, каждый браузер будет работать нормально.Ну, он был создан для отображения символов, которые не включены в текущую кодировку.В ваших ситуациях это выглядит так, как будто вы должны установить некоторые шрифты на свой Windows-бокс.

С другой стороны, он почти не имеет отношения к PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...