因为名字中有表情符号,苹果改变了表情符号的编码。
所以用户名包含旧版的表情符号,我怎么能将它们转换为新的编码?
谢谢!
具体:一个表情符号“tiger”,在iOS5中是“\ U0001f42f”,但在早期的iOS版本中是“\ ue050”。
答案 0 :(得分:2)
我有同样的问题,经过几个小时的挖掘后终于找到了适合我的this answer
如果您使用rails作为服务器,这就是您需要做的。无需在ios / xcode中执行任何操作,只需传递NSString,而无需对服务器执行任何UTF8 / 16编码。
Postegre正确存储代码,就在你将json响应发送回ios客户端时,假设你渲染json:@message,json编码有问题。
您可以通过在控制台中进行简单测试来测试您的rails控制台中是否存在json编码问题 test = {“smiley”=>“u {1f604}”} test.to_json
如果打印出“{\”smiley \“:\”\ uf604 \“}”(注意1丢失了),那么你有这个问题。并且链接中的补丁将修复它。
答案 1 :(得分:1)
iOS 5和OS X 10.7(Lion)使用Unicode 6.0标准的“统一”代码点作为表情符号。
SoftBank iPhone上的iOS 4在Unicode专用区域中使用了一组非官方代码点,因此与任何其他系统都不兼容。要将此格式转换为正确的Unicode 6.0字符,您需要在软件代码中运行一个大的查找表,以便在提交时对所有当前数据和所有新表单数据进行统一。此时您可能还想进行Unicode规范化,例如。全角字母匹配普通的ASCII字母。
请参阅为PHP执行表情符号转换任务的库中的this table。
用户名中的表情符号?