как конвертировать старую кодировку эмодзи в последнюю кодировку в iOS5? - PullRequest
6 голосов
/ 22 октября 2011

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

Поскольку в их именах есть символ эмодзи, а яблоко изменило кодировку смайликов.

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

спасибо!

Конкретно: один символ эмодзи "тигр", это "\ U0001f42f" в iOS5, но "\ ue050" в более ранней версии iOS.

Ответы [ 2 ]

2 голосов
/ 04 июня 2012

У меня была такая же проблема, после копания в течение нескольких часов и, наконец, нашел этот ответ , который работает для меня

Если вы используете rails в качестве сервера, это все, что вам нужно сделать. Не нужно ничего делать в ios / xcode, просто передайте NSString, не выполняя какие-либо операции кодирования UTF8 / 16, на сервер.

Postegre правильно хранит код, просто когда вы отправляете ответ json обратно на клиент ios, при условии, что вы выполняете рендеринг json: @message, возникает проблема с кодировкой json.

Вы можете проверить, есть ли у вас проблемы с кодировкой json на вашей консоли rails, выполнив простой тест на вашей консоли. test = {"smiley" => "u {1f604}"} test.to_json

если он напечатает "{\" smiley \ ": \" \ uf604 \ "}" (обратите внимание, что 1 потеряно), то у вас есть эта проблема. и патч по ссылке это исправит.

1 голос
/ 22 октября 2011

iOS 5 и OS X 10.7 (Lion) используют стандартные унифицированные кодовые точки Unicode 6.0 для эмодзи.

iOS 4 на iPhone SoftBank использовала набор неофициальных кодовых точек в области личного использования Unicode и поэтому не совместима ни с какими другими системами. Чтобы преобразовать этот формат в надлежащие символы Unicode 6.0, вам нужно будет запустить большую справочную таблицу из кода Softbank в Unified для всех ваших текущих данных и всех новых данных формы по мере их отправки. Вы также можете выполнить нормализацию Unicode на этом этапе, например,. буквы полной ширины соответствуют нормальным буквам ASCII.

См., Например, эту таблицу из библиотеки, которая выполняет задачи преобразования Emoji для PHP.

эмодзи в логинах хоть? enter image description here

...