如何记录俄语文本或非拉丁文?

时间:2012-04-15 13:15:04

标签: ios character-encoding internationalization xcode4.3 nslog

在以前版本的XCode中,一切都运行良好。但今天在XCode 4.3.2中我遇到了问题。如何记录俄语文本或非拉丁文?

NSLog(@"russian text: русский текст");

NSString *text = @"russian text: русский текст";
const char *textC = [text UTF8String];    
NSString *getText = [NSString stringWithCString:textC encoding:NSUTF8StringEncoding];
NSLog(@"___text: %@", getText);

我的日志

russian text: —Ä—É—Å—Å–∫–∏–π —Ç–µ–∫—Å—Ç
___text: russian text: —Ä—É—Å—Å–∫–∏–π —Ç–µ–∫—Å—Ç

更新

该错误仅发生在真实设备上(ipod touch 5.1)。它在iphone模拟器上正常工作。

3 个答案:

答案 0 :(得分:2)

在Xcode 4.2中可以正常使用,因此它是4.3.2错误或您的源文件编码错误。

选中“首选项/文本编辑/编辑选项卡/默认文本编码”设置,并确保将其设置为Unicode(UTF-8)。

如果是,请在BBEdit中打开文件并仔细检查其编码。可能在文件上设置了旧的MacRoman或其他编码。

答案 1 :(得分:2)

更新:

在我的模拟器中正常工作。

然而,在运行iOS 5.1的真实设备上,我得到了与您相同的错误,干扰输出。 所以它可能是一个XCode 4.3.2错误。


我在XCode 4.3.2上测试了你的代码,它对我来说很好。

我的日志:

2012-04-15 15:44:28.545 test[25799:15203] russian text: русский текст
2012-04-15 15:44:28.548 test[25799:15203] ___text: russian text: русский текст

答案 2 :(得分:1)

我找到了解决方案。您需要在Product-> Edit Sheme中将调试器从LLDB更改为GDB。 LLDB与俄语无法正常工作。