У меня была такая же проблема, после нескольких часов копания и, наконец, я нашел ответ, который работает для меня: 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
, если он печатает" {\ "smiley \": \ "\ uf604 \"} "(обратите внимание, что 1 потеряно), тогда у вас есть этопроблема.и патч по ссылке это исправит.