如何将旧的表情符号编码转换为iOS5中的最新编码?

不幸的是,iOS5终于发布后,我从用户那里得到了他们无法login的报告。

因为有名字的表情符号,苹果改变了表情符号的编码。

所以有用户名包含旧版本的表情符号,我怎么可以将它们转换为新的编码?

谢谢!

具体:一个表情符号“老虎”,在iOS5中是“\ U0001f42f”,而在早期的iOS版本中是“\ u0050”。

iOS 5和OS X 10.7(Lion)使用Unicode 6.0标准的“统一”代码点来expressionemoji。

SoftBank iPhone上的iOS 4在Unicode专用区域中使用了一组非专用的代码点,因此与任何其他系统都不兼容。 要将此格式转换为正确的Unicode 6.0字符,您需要运行Softbank代码中的大查找表,以统一当前数据和所有新表单数据的提交。 你可能也想在这一点上做Unicode规范化,例如。 全angular字母匹配正常的ASCII字母。

例如,从一个为PHP执行表情符号转换任务的库中查看这个表格 。

用户名表情符号虽然? 在这里输入图像说明

我有同样的问题,挖了几个小时后,终于find了这个答案对我有用

如果你使用rails作为你的服务器,这就是你所需要做的。 无需在ios / xcode中做任何事情,只需传递NSString,而不需要做任何UTF8 / 16编码的东西到服务器。

Postegre正确存储代码,只是当你发送json响应返回给你的ios客户端时,假设你做了json:@message,那么json编码就有问题了。

你可以通过在控制台中进行简单的testing来testing你的rails控制台是否存在json编码问题。test = {“smiley”=>“u {1f604}”} test.to_json

如果打印出“{\”smiley \“:\”\ uf604 \“}”(注意1丢失),那么你有这个问题。 并从链接补丁将修复它。