不幸的是,在iOS5最终发布后,我从我的用户那里得到了他们无法登录的报告。
因为三个名字都有表情符号,所以苹果改变了表情符号的编码。
那么用户名包含一个旧版本的emoji,我如何将它们转换成新的编码呢?
谢谢!
具体地说:一个表情符号“老虎”,在iOS5中是"\U0001f42f“,在早期的iOS版本中是"\ue050”。
发布于 2011-10-22 21:36:59
iOS 5和OS X 10.7 (Lion)对表情符号使用统一的Unicode6.0标准代码点。
SoftBank iPhones上的iOS 4在Unicode私有使用区域中使用了一组非官方代码点,因此与任何其他系统都不兼容。要将此格式转换为正确的Unicode 6.0字符,您需要在提交当前数据和所有新表单数据时,对所有当前数据和所有新表单数据运行一个从Softbank code到Unified的大型查询表。你可能也想在这一点上进行Unicode标准化,这样就可以。全角字母与普通ASCII字母匹配。
例如,从一个为PHP执行表情符号转换任务的库中查看this table。
但是用户名中的表情符号呢?

发布于 2012-06-04 08:08:07
我也遇到了同样的问题,经过几个小时的挖掘,终于找到了适合我的this answer
如果您使用rails作为服务器,这就是您需要做的全部工作。不需要在ios/xcode中做任何事情,只需将NSString传递给服务器,而不做任何UTF8/16编码。
Postegre正确地存储了代码,只是当您将json响应发送回ios客户端时,假设您确实呈现了json:@message,那么json编码就有问题。
您可以通过在控制台测试= {"smiley"=>"u{1f604}"} test.to_json来测试您的rails控制台中是否存在json编码问题
如果它打印出"{\"smiley\":\"\uf604\"}“(注意1丢失了),那么您就遇到了这个问题。链接中的补丁将会修复它。
https://stackoverflow.com/questions/7856775
复制相似问题