2009-11-10 3 views
2
 

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

ответ

6

хау я помещаю эти маленькие коробки в файл 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. смайлики по-прежнему полностью Нестандартизованные. Те персонажи, которые вы разместили, находятся в области использования Юникода, что означает, что у них нет никакого официального значения.

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

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

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

+5

+1 для последнего предложения. ; О) – deceze

0

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

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

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

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

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

+2

Строка требует * шрифта *, не установленного на вашем компьютере (или большинстве компьютеров). Набор символов на всех страницах StackOverflow - это Unicode, который используется в кодировке UTF-8. – bobince

3

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

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

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


Character Viewer http://img.skitch.com/20091110-e7nkuqbjrisabrdipk96p4yt59.png

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


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

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

+0

Так как же найти «кодировки» для них? – Strawberry

+0

См. Редактирование. То, что вы можете найти с этим, - это коды символов *, * кодировка * - это что-то другое и можно только догадываться (в данном случае это, вероятно, UTF8). – deceze

Смежные вопросы