这个Bug折腾了我近一天,读一个文件,NSLog输出文件内容,结果死活读不完整,不光中文没有,英文也不全,考虑了编码,文件大小,文件位置等各种可能的因素,尝试用各种方式重写这个操作,最后发现是NSLog的问题,跟文件一毛钱关系都没有,感谢这两个链接:link1 link2 。
鉴于第二个链接已经解释的很清楚了,我这里就简要说一下,毕竟Wall还是有些麻烦
重现Bug很简单,Xcode 4.3+,用lldb在真机上运行(模拟器没有问题)下面代码:
NSLog(@"English1"); NSLog(@"中文"); NSLog(@"English2");
中文那行神马都不输出啊!如果NSLog一个NSString,String里面有中文,那么输出也会悲剧。
解决方法两种:
- 如果你执着于lldb,那么用Organizer >> Devices >> 你的设备 >> Console 这里会显示中文
- 按住Option点Run(或者 Product >> Edit Scheme…),Info >> Debugger 设置为GDB
一切回归正常,WTF!
另外有人说4.3.2解决了这个问题,事实是:没有解决!
祝愿被这个问题折腾死的人能早日看到这篇文章或者link2那篇文章。
Becareful with XCode!!
–以上–
Version 4.3.2 (4E2002) 表示无此问题,一切正常,包括你上一篇文章提及的SVN问题。
莫非是我升级的缘故?还是你没设置lldb啊
XCode 4.3.2使用lldb, console中确实已经可以正确显示中文了
4.3.2表示还是有问题,坐等苹果修复。(模拟器无问题,但是真机console输出中文就会有问题)