【问题标题】:Debugger console encoding in XCode is brokenXCode 中的调试器控制台编码已损坏
【发布时间】:2012-06-12 15:05:13
【问题描述】:

XCode 调试控制台中的非拉丁文本输出方式非常奇怪。如何让它正确?

例如:Проверьте давление экрана. 变为 –ü—Ä–æ–≤–µ—Ä–∫–∞ –¥–∞–≤–ª–µ–Ω–∏—è —ç–∫—Ä–∞–Ω–∞

(请帮我改进我的问题,因为我的英语不好。如果很难理解我在这里写的内容,请告诉我。)

- (id) initWithDictionary:(NSDictionary*)dictionary
{
    //...
    self.title = [dictionary objectForKey:@"Заголовок"] ; // dictionary from plist encoded in UTF8
    //...
    return self;
}
- (void) log
{
    NSString *class = NSStringFromClass([self class]);
    NSString *sel   = NSStringFromSelector(_cmd);
    NSLog(@"%@:%@:%@", class, title_, sel);
}

title_ 是从 plist 加载的 iVar NSString。它用作 uiviewcontroller 的标题,在 iPhone 和 iPad 上运行良好。

【问题讨论】:

  • 看起来调试控制台不支持 Unicode。这看起来像是将原始 UTF-8 渲染成 latin-1。
  • 谢谢你,马那古!如果您确定,请写(复制粘贴)它作为答案,以便我接受。
  • 我真的不知道,只是猜测。我从未使用过 XCode。
  • 这不是关于终端,而是关于 XCode 中的调试器控制台(尽管这些问题可能相关)

标签: xcode xcode4 character-encoding console


【解决方案1】:

自从我将调试器从 lldb 更改为 gdb 后,输出变得正常。所以,lldb一定有问题。

在 xcode 4 中:菜单 -> 产品 -> 管理方案...然后点击编辑按钮 -> 运行 Your.app(左侧面板)-> 调试器 -> 将其从 LLDB 更改为 GDB。

【讨论】:

  • @Enkidu 可能已经过时了
【解决方案2】:

我认为从 Xcode 3 开始这不会是问题,但我想我想错了。

记录日志的丑陋技巧:也许尝试 NSString 的 -cStringUsingEncoding: 使用不同的记录格式来尝试强制显示正确的编码。我不知道这是否可行:

NSLog(@"%S", [title_ cStringUsingEncoding:NSUnicodeStringEncoding]);

【讨论】:

猜你喜欢
  • 2017-12-20
  • 1970-01-01
  • 2011-01-12
  • 2018-02-27
  • 2023-03-18
  • 1970-01-01
  • 2020-11-02
  • 2011-07-16
  • 1970-01-01
相关资源
最近更新 更多