0

我在使用带有 'ç' 和 'ñ' 等 unicode 字符的 NSString 时遇到问题。一个像这样简单的例子:

NSString *alphabet = @"abçd";
NSLog(@"alphabet is %@", alphabet);

在控制台上输出:

字母表是ab√ßd

如何确保 NSString 正在处理这些 un​​icode 字符?我通过在线搜索和 NSString 类参考尝试了几种不同的方法,但似乎都没有。

提前致谢。

4

2 回答 2

2

您可以确保 NSString 通过输出到文件并从中读取来正确处理它们...

我会以 100% 的把握猜测问题不在于 NSString 而是控制台预期的文本编码,或者源文件的文本编码......可能是前者。

在 Xcode 的调试器中,我得到了预期的输出:

alphabet is abçd

你的测试:

NSString *alphabet = @"abçd";       
[alphabet writeToFile:[@"~/Desktop/charTest.txt" stringByExpandingTildeInPath] atomically:NO encoding:NSUTF8StringEncoding error:nil];
于 2012-04-09T01:42:27.113 回答
0

您可以尝试使用 UTF-8 编码初始化 NSString

NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];

代码取自另一个答案——将 UTF-8 编码的 NSData 转换为 NSString

于 2012-04-09T01:48:08.333 回答