1

我正在使用类似 nsstring 的分隔符,但是当我通过带有模拟器的控制台显示时,我的表现很好,但是当我使用 iphone 4S 进行显示时,我会看到其他东西。我尝试解析为 utf8,ascii,但我无法解决它。有人可以告诉我为什么会这样吗?

#define SEPARATOR @"ääëëñS0ñççää"
  • iphone模拟器:
    NSLog(@"%@",SEPARATOR); -->终端文本:ääëëñS0ñççää`

  • 我的 iPhone 4S:

    NSLog(@"%@",SEPARATOR); -->终端文本:√§√§√´√´√±S0√±√ß√ß√§√§`

    const char *utf8String = [SEPARADOR UTF8String];
    
    NSString *stringFromUTFString = [[NSString alloc] initWithUTF8String:utf8String];
    
    NSLog(@"%@",stringFromUTFString);
    

现在,我这样做了,当我使用模拟器时,我正确地显示了分隔符,但是当我使用我的设备时,他将文本传递给了 NSISOLatin1StringEncoding。

4

2 回答 2

1

Xcode 的模拟器使用系统字体(Mac 机器)来渲染文本,但 iPhone 只使用其中嵌入的字体,这意味着模拟器中可用的所有字体在 iPhone 上可能不可用。

于 2012-09-17T12:55:19.950 回答
0

试试这个

NSString *SEPARATOR = @"ääëëñS0ñççää";
NSLog(@"%s",[SEPARATOR UTF8String]);

也就是说,您应该在运行模拟器的 Mac 和设备本身上都运行字体,因为您正在处理特定的语言 - Mac 和 iOS 设备都应该安装这种语言。

看来您应该在设备上进行设置并启用您正在处理的任何语言......

于 2012-09-17T12:55:54.343 回答