0

我对 UTF8 编码有奇怪的行为:

例如:当我在模拟器上运行时

NSString *uni   = @"\U0001d11e";
NSString *uni2  = [[NSString alloc] initWithUTF8String:"\xF0\x9D\x84\x9E"];
NSString *uni3  = @"";
NSLog(@"unicode: %@ and %@ and %@",uni, uni2, uni3);

我得到了预期的结果:

unicode:  and  and 

但是当我将它运行到一个真实的设备中时,这里的输出:

unicode: ùÑû and ùÑû and ùÑû

我不明白为什么。这是一个编译解决方法,还是我不明白的东西?我知道 @"" 构造只能采用 ASCII 字符。但为什么这是在模拟器上工作?你知道如何让它在真实设备上运行吗?谢谢

4

1 回答 1

1

一切正常,字节被正确接收。只是设备将它们解码为Mac OS Roman而不是 UTF-8。您需要做的就是向设备指定输入为 UTF-8。如果您不知道该怎么做,那么您应该提供更多详细信息。

于 2012-12-10T15:19:44.800 回答