iOS 5: Как преобразовать Emoji в символ Юникода?

Я хочу преобразовать Emoji в символ юникода в iOS 5.

Например, улыбающееся лицо с открытым ртом и холодным потом to \ue415 .

Я перешел в NSStringEncoding в NSString Reference .

В iOS 4 NSUTF16BigEndianStringEncoding и NSUTF32BigEndianStringEncoding дали мне и , соответственно, которые очень близки к тому, что я хочу.

В iOS 5 результаты разные. Он предоставляет и .

Как я могу получить \ue415 для улыбающееся лицо с открытым ртом и холодным потом в iOS 5? Спасибо.

\ue415 является частью устаревшей кодировки для emoji и специфичен для некоторых японских носителей. У SoftBank, NTT и docomo были свои собственные персонажи-персонажи.

iOS 5 переместился на новую указанную поддержку Unicode 6.0 для символов символов <0001f604> а <0001f604> это кодовая точка Unicode для этого символа. В записи wikipedia об этом упоминается файл сопоставления EmojiSources.txt, который вам нужно будет использовать для самофиксации, если вам действительно нужно получить старые коды персональных символов.

http://en.wikipedia.org/wiki/Emoji

Попробуйте следующее:

  1. Преобразование Emoji в unicode

     NSData *data = [strEmo dataUsingEncoding:NSNonLossyASCIIStringEncoding]; NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
  2. Очень легко конвертировать Unicode в Emoji

     NSData *data = [strEmo dataUsingEncoding:NSUTF8StringEncoding]; NSString *goodValue = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding]; 

рассеивание эможи в UILabel:

 NSString *bellEmojiString = @"U+1F514"; label.text = [NSSting stringWithFormat:@"Table: %@", @"\U0001F514"]; 

вы должны быть осторожны, замените + на 3 zero цифры

Преобразуйте обратно: –

 NSData *newdata=[recievedstring dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSString *mystring=[[NSString alloc] initWithData:newdata encoding:NSNonLossyASCIIStringEncoding]; 

попробуйте следующее: http://opensource.apple.com/source/ICU/ICU-461.13/icuSources/data/translit/Any_SoftbankSMS.txt

на iOS5, используйте левый код, на iOS 4 и ниже, используйте правильный код.

если ваш emoji не отправляется в оба конца (от ios до серверного сервера и обратно в ios), тогда у вас не должно быть проблем ios (не менее 4.2+) правильно обрабатывает кодировку, и вам не нужно делать что-нибудь. но если ваше приложение взаимодействует с сервером, вы подозреваете, что значение возвращаемого вами сервера неверно? т.е. json закодирован неправильно.

У меня была такая же проблема, после того, как выкопали часами и, наконец, нашли этот ответ, который работает для меня: https://stackoverflow.com/a/8339255/1090945

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

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

вы можете проверить, есть ли у вас проблема с json-кодированием в консоли rails, выполнив простой тест на консоли

 test = {"smiley"=>"u{1f604}"} 

test.to_json

если он печатает «{\” смайлик \ “: \” \ uf604 \ “}” (обратите внимание, что 1 утерян), тогда у вас есть эта проблема. и исправление из ссылки исправит его.

  • iOS 8 Снимок снимка, который не был отображен, приводит к созданию пустого моментального снимка
  • Как установить жирный шрифт и курсив на UILabel iPhone / iPad?
  • Типы в объективе-c на iPhone
  • Переменная Property vs. instance
  • UITextField: перемещение вида при появлении клавиатуры
  • Могу ли я передать блок как @selector с Objective-C?
  • Как распечатать имя метода и номер строки и условно отключить NSLog?
  • Выполнение команд оболочки с помощью NSTask - Objective-C Cocoa
  • Как установить приложение Cocoa в качестве браузера по умолчанию?
  • захват себя в этом блоке, вероятно, приведет к циклу сохранения
  • Загрузка изображений из фоновой темы с использованием блоков
  • Давайте будем гением компьютера.