Как отображать emoji char в HTML
Я сохранил лицо, "смакующее вкусные продукты emoji", в базу данных и прочитал его в php json_encode, который показывает "uD83D\uDE0B", но обычно мы используем один ярлык <img />
для его замены.
однако обычно я просто нахожу этот формат '\ uE056' не "uD83D\uDE0B", чтобы заменить на pic E056.png.
Я не знаю, как получить pic accroding на "uD83D\uDE0B". Кто-нибудь знает?
Какая связь между "uD83D\uDE0B" и "\ uE056", они оба представляют эмози "смакуя вкусную еду"?
Ответы
Ответ 1
Символ Юникода U + 1F60B FACE SAVORING DELICIOUS FOOD - это так называемый знак плоскости 1, что означает, что его кодированная UTF-16 форма состоит из двух 16-разрядных блоков кода, а именно 0xD83D 0xDE0B. Как правило, символы Plane 1 вызывают значительные проблемы, потому что многие программы не готовы к их решению, и в них есть несколько шрифтов.
В соответствии с http://www.fileformat.info/info/unicode/char/1f60b/fontsupport.htm этот конкретный символ существует только в шрифтах DejaVu и в Symbola, но версии DejaVu Im, использующие его, не содержат.
Вместо того, чтобы решать проблемы кодировок (которые не так сложны, но требуют дополнительной информации), вы можете использовать ссылку на символ 😈
в HTML. Но это не решает проблему шрифта. Я не знаю о шрифтах iPhone, но, в общем, в веб-браузере, шансы компьютера с любым шрифтом, способным отображать персонажа, вероятно, составляют менее 1%. Таким образом, вам может потребоваться использовать загружаемые шрифты. Использование изображения, очевидно, намного проще и в основном более надежным.
U + E056 - код для частного использования, что означает, что любой может договориться о его значении с братом или с самим собой, не спрашивая никого. Дизайнер шрифтов может присвоить ему любой символ.
Ответ 2
ВАЖНО: начиная с этой публикации единственным браузером, который автоматически не поддерживает emojis, является хром.
ДЛЯ ХРОМА:
В зависимости от того, какой язык на стороне сервера вы используете, вы должны найти библиотеку, которая преобразует emojis для вас. Мне недавно нужно было решить эту проблему с помощью php и использовать эту библиотеку:
https://github.com/iamcal/php-emoji
Создатель по существу создал спрайт и настраивает css в соответствии с юникодом emoji. Это не красиво, но, к счастью, он сделал для вас всю работу. Если вы используете другой язык, вы должны найти что-то подобное.
Ответ 3
как помещать эти маленькие ящики в файл php?
То же, что и любой другой символ Юникода. Просто вставьте их и убедитесь, что вы сохраняете файл PHP и используете страницу PHP как UTF-8.
Когда я помещаю его в php файл, он превращается в вопросительные знаки, а что нет
Тогда у вас есть проблема с кодировкой. Поработайте с символами Юникода, которые вы можете увидеть правильно, например, ąαд ™ 日本, прежде чем беспокоиться об эможи.
Ваш PHP файл должен быть сохранен как UTF-8; страница, которую она создает, должна быть представлена как Content-Type: text/html;charset:UTF-8
(или с аналогичным метатегом); база данных MySQL должна использовать сопоставление UTF-8 для хранения данных, а PHP должен разговаривать с MySQL с использованием UTF-8.
Однако. Даже правильно управляя таким образом, ПК все равно не покажут эможи. Это потому, что:
у них нет шрифтов, которые содержат фигуры для этих символов, и
emoji все еще полностью нестандартизированы. Те персонажи, которые вы опубликовали, находятся в области использования в Юникоде, что означает, что у них нет никакого официального значения.
Каждая сеть в Японии использует разные коды символов для своих эмози, сопоставленных с различными областями в PUA. Таким образом, даже на другом мобильном телефоне он, вероятно, не отобразит правильный символ, если вы не потратите много времени на перенос кодов emoji для разных сетей. Я предполагаю, что вы опубликовали выше, из SoftBank (iPhone?).
Существует постоянное предложение, которое Google и Apple собирают для сопоставления emoji разных сетей и предоставляют им стандартное стандартное место в Unicode. До тех пор, когда emoji постоянно отображается в разных сетях, это упражнение в несчастье. См. обзор символов из работы по стандартизации, чтобы увидеть, сколько конверсий вам нужно будет сделать.
Бог, я ненавижу эможи. Вся эта боль для такой нагрузки бесполезного мусора.