我正在获取带有拉丁字母的 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/