ios - Objective c unicode char* 到 NSString

标签 ios objective-c

我正在获取带有拉丁字母的 char* 打印示例:M\xe4da Primavesi

我正在尝试将其转换为 NSString ,最终结果应该是 Mäda Primavesi。

有人知道如何进行对话吗?

谢谢

最佳答案

你想要的编码是NSISOLatin1StringEncoding:

NSString *latin = [NSString stringWithCString:"M\xe4da Primavesi" encoding:NSISOLatin1StringEncoding];

但是您会注意到这会打印MÚ Primavesi。这是因为 \x 是贪心的,并将 “da” 解释为十六进制 \xe4da 的一部分。您必须找到一种方法将 "\xe4" 部分与 "da" 部分分开。

这个有效:

NSString *latin = [NSString stringWithCString:"M\xe4""da Primavesi" encoding:NSISOLatin1StringEncoding]; // prints Mäda Primavesi

我建议您使用 utf-8 字符串 "M\u00e4da Primavesi" 对拉丁 C 字符串进行编码,然后使用 NSUTF8StringEncoding 对其进行解码。

关于ios - Objective c unicode char* 到 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21848010/

相关文章:

ios - 我应该继承 UICollectionViewLayout 或 UICollectionViewFlowLayout 什么

objective-c - @synchronized(self) 是否创建一个 block ,其中 self 前缀在属性上是不必要的?

ios - iOS 和 OSX 使用相同的 Objective-C 运行时吗?

iphone - 发送到 UIButton 实例的无法识别的选择器

ios - UIButton 背景图像水平缩放以填充,同时保持纵横比

ios - 将 UIView 旋转到设备方向并调整边界大小

ios - 如何在 Objective-C 中获取 UIAlertView subview UITextField 值

ios - __bridge 不需要方法参数?

ios - 继承 MKAnnotationView 并从 initWithFrame : overloads 调用 init 时无限循环

iphone - 下载 nsDocumentDirectory 中的 zip 文件,解压并阅读