【问题标题】:Concatenate \u sign with a string in iOS在 iOS 中将 \u 符号与字符串连接起来
【发布时间】:2014-07-04 14:38:30
【问题描述】:

我不知道如何将 Unicode 符号 \uf1bc 这样的字符串正确连接以获得 \uf1bc。有什么想法吗?

原因:我目前使用的 API 发送给我的 Unicode 符号没有 \u... 响应如下所示(来自NSDictionary 键):

"icon" : "f1bc",

【问题讨论】:

  • 你想得到一个带有字符“\uf1bc”的字符串还是带有unicode f1bc的字符? (在 unicode 的私有区域内!)
  • 要在 uilabel 中显示的字符。抱歉,如果不清楚。
  • 看我的回答。但我不确定,它是否可用。也许是utf8?

标签: ios objective-c unicode nsstring string-concatenation


【解决方案1】:

根据您的评论,您不能通过连接 \u 和十六进制代码来做到这一点。这是在编译时解释的。

你要先获取unicode值,然后再转换成字符:

NSString* unicodeString = …; // @"f1bc"
NSScanner *scanner = [NSScanner scannerWithString:unicodeString];
unsigned unicode;
[scanner scanHexInt:&unicode];
NSString *stringWithUnicodeChar = [NSString stringWithFormat:@"%C", (unichar)unicode];

在 Safari 中输入。

【讨论】:

  • 我会使用unichar类型并检查scanHexInt:的返回值
  • 当然,抱歉。但这只是为了展示方法。
  • 就像一个魅力!谢谢。仅供参考,第二种方法给出警告:不兼容的指针类型将“unichar *”(又名“unsigned short *”)发送到“unsigned int *”类型的参数
  • 是的,没有-scanHexUnicode:。如果您使用 int(就像我在编辑之前所做的那样)然后将其分配给 unichar,您可以摆脱它。我正在前往德国对法国的灾难。我稍后会编辑它。
猜你喜欢
  • 2015-10-03
  • 2020-07-31
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多