Unicode字符在NSLog输出中无法正确显示

时间:2013-08-04 20:35:40

标签: objective-c xcode encoding

我想用个性化条目编写自己的Eng-Rus字典。研究这个主题我写了这个方法(用于学习的目的) - 我无法输出俄语TO CONSOLE中的NSMutableDictionary。查看代码和控制台输出。我试图在没有运气的情况下禁用LLDB到GDB。编码pref是UTF8(xcode 4.6.3)。所以,我认为我有一个“程序员”问题 - 即我只是不知道什么。我还在学习,所以需要你的帮助,朋友......

-(NSString*) dicto
{
    NSString *vic;
    NSMutableDictionary *dictos = [[NSMutableDictionary alloc]initWithCapacity:10] ;

    [dictos setValue:@"кошка" forKey:@"cat"]; //at the console output below NO Russian
    [dictos setValue:@"dog" forKey:@"собака"]; //at the console output below NO Russian

    NSArray *final=[dictos allKeys];
    id vid =[final objectAtIndex:1];
    NSLog(@"vid is %@",vid); // prints in Russian
    NSLog(@"%@", dictos); //this line probably has an issue  
    vic=vid;
    return vic; //the label.text in sender (=iphone simulator) prints Russian   
}

控制台输出(XCode中的下部窗口)

2013-08-04 23:20:33.958 helloWorldToConsolFromNSLog[17718:c07] vid is собака
2013-08-04 23:20:33.958 helloWorldToConsolFromNSLog[17718:c07] {
    cat = "\U043a\U043e\U0448\U043a\U0430";
    "\U0441\U043e\U0431\U0430\U043a\U0430" = dog;
}

1 个答案:

答案 0 :(得分:3)

NSLog使用description方法打印NSDictionary(或NSArray),以及 打印\Unnnn转义表单中的所有非ASCII字符。

NSLogdescription只应用于调试输出,所以这完全没问题。 所有键和值都正确存储。