【问题标题】:convert NSString to UTF-16 compatible format将 NSString 转换为 UTF-16 兼容格式
【发布时间】:2012-12-18 11:10:27
【问题描述】:

我正在使用 iPhone 制作表情符号。我想将“\u1F604”(NSString)之类的东西转换为“\U0001F604”(NSString)格式。

我该怎么做?

谢谢,
吉姆。

【问题讨论】:

  • 用 U000 替换小 u。如果 retVal=@"\u1F604" 然后 [retVal stringByReplacingOccurrencesOfString:@"u" withString:@"U000" ];我希望这是你想要的。
  • @Divya:如果我想替换,这可能是显而易见的情况,但我正在寻找通用情况,如果我有“\u2723”,那么它应该给我“\U00002723”。
  • 在这里查看我的问题可能对您有帮助 - stackoverflow.com/questions/12140770/…
  • 你从哪里得到"\u1F604"?这对U+1F604 无效,它表示"\u1F60",然后是数字"4"。必须恰好有 4 个十六进制数字,否则会产生歧义。我不相信这是机器生成的?
  • @Jim 不,不是,你在谈论代码点符号U+1F604not 短 unicode 转义序列 \uxxxx。 \u 方案会将U+1F604 编码为\ud83d\ude04。见jsfiddle.net/2A2tT。如果服务器返回\u1F604,那是服务器损坏。因为无法判断它是指表情符号,还是带重音的小欧米茄和数字 4

标签: iphone objective-c unicode


【解决方案1】:

请尝试以下代码。

NSString* resultTemp = @"\u1F604";
NSData* data = [resultTemp dataUsingEncoding:NSUTF16StringEncoding];
NSString* result = [[NSString alloc] initWithData:data encoding:NSUTF16StringEncoding];
self.detailDescriptionLabel.text = result;

【讨论】:

  • 使用上述解决方案无法获得正确的表情符号图标。它以“ὠ4”的形式出现,而不是笑脸图标。✨
猜你喜欢
  • 2012-06-01
  • 2015-09-21
  • 1970-01-01
  • 2015-09-19
  • 2015-12-06
  • 2011-09-14
  • 2017-09-24
  • 1970-01-01
相关资源
最近更新 更多