Вопросы о iPhone Emoji и веб-страницах - PullRequest
2 голосов
/ 10 ноября 2009


Хорошо, эмоджи показывает на компьютере вышеописанное. Это другой язык программирования? Итак, как мне поместить эти маленькие коробки в файл php? Когда я помещаю его в файл php, он превращается в вопросительные знаки, а что нет. Кроме того, как я могу хранить их в MySQL, не превращая их в вопросительные знаки и другие странные вещи?

Ответы [ 3 ]

6 голосов
/ 10 ноября 2009

как мне поместить эти маленькие коробочки в php файл?

Так же, как и любой другой символ Юникода. Просто вставьте их и убедитесь, что вы сохраняете файл PHP и обслуживаете страницу PHP как UTF-8.

Когда я помещаю его в файл php, он превращается в вопросительные знаки, а что нет

Тогда у вас проблема с кодировкой. Поработайте с Unicode-символами, которые вы действительно можете сначала правильно увидеть, например ąαд™日本, прежде чем беспокоиться о смайликах.

Ваш файл PHP должен быть сохранен как UTF-8; страница, которую он создает, должна обслуживаться как Content-Type: text/html;charset:UTF-8 (или с похожим метатегом); база данных MySQL должна использовать параметры сортировки UTF-8 для хранения данных, а PHP должен общаться с MySQL с использованием UTF-8.

Тем не менее. Даже если все делать правильно, компьютеры все равно не будут показывать смайлики. Это потому что:

  1. у них нет шрифтов, которые включают фигуры для этих символов, и

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

Каждая сеть в Японии использует разные коды символов для своих смайликов, сопоставленных с различными областями в PUA. Так что даже на другом мобильном телефоне он, вероятно, не будет отображать правильный символ, если вы не потратите целую вечность на то, чтобы вручную преобразовать коды смайликов для разных сетей. Я предполагаю, что те, что вы разместили выше, взяты из SoftBank (iPhone?).

В настоящее время под руководством Google и Apple действует предложение сопоставить смайлики различных сетей и дать им надлежащее стандартизированное место в Юникоде. До тех пор, чтобы смайлики постоянно отображались в разных сетях, это упражнение в несчастье. См. обзор символов из работы по стандартизации, чтобы узнать, сколько конвертации вам потребуется.

Боже, я ненавижу эмодзи. Вся эта боль за такой груз бесполезного мусора.

3 голосов
/ 10 ноября 2009

Это не имеет ничего общего с языками программирования, только с кодировкой и шрифтами. Очень краткий обзор: каждый символ хранится в своем коде символа (например, 0x41 = A, 0x42 = B и т. Д.), Который отображается на экране как значимый символ с использованием шрифта (который говорит «символ с кодом»). 0x41 должно выглядеть так ... ").

Эти emoji занимают «личную область» таблицы Unicode , которая представляет собой диапазон кодов, которые не определены и бесплатны для любого использования. , Это делает их совершенно корректными символьными кодами, просто ни у одного стандартного шрифта нет подходящего символа для отображения, поскольку они не определены. Только iPhone и другие портативные устройства, в основном в Японии, имеют соответствующие значки для этих кодов. Это сделано для экономии пропускной способности; вместо передачи относительно больших файлов изображений туда и обратно эмодзи могут передаваться с использованием односимвольного кода.

Что касается того, как их хранить: они должны быть сохранены как есть, до тех пор, пока вы не попытаетесь преобразовать их в другую кодировку, и в этом случае они могут потеряться . Просто знайте, что они имеют смысл только на iPhone и других телефонах SoftBank в Японии.


Просмотрщик символов http://img.skitch.com/20091110-e7nkuqbjrisabrdipk96p4yt59.png

Если вы работаете в OSX, вы можете скопировать и вставить символ в Средство просмотра символов, чтобы узнать, что это такое. Я думаю, что есть похожая карта символов в Windows (хотя и ниже ;-P). Вы можете указать это через PHP ord(), но это работает только для символов ASCII. См. Обсуждение на странице ord для функций UTF8.


Кстати, просто для удовольствия, эти символы хорошо отображаются на iPhone как есть, потому что у iPhone есть шрифт, на котором есть значки:

iPhone http://img.skitch.com/20091110-bjt3tutjxad1kw4p9uhem5jhnk.png

0 голосов
/ 10 ноября 2009

Я использую FF3.5 и WinXP. Я также вижу маленькие коробочки в своем браузере.

Это говорит мне, что строка требует набора символов , а не , установленного на моем компьютере.

Когда вы помещаете строку в файл PHP, знаки вопроса говорят вам то же самое: ваш компьютер не знает, как отображать символы.

Вы можете хранить эти эмодзи символов в MySQL, если кодируете их по-другому, возможно, используя UTF-8.

Выполните веб-поиск для кодировки символов, так как она относится к MySQL.

...