这是我正在使用的代码(取自 - Converting Country Codes to Country Names)
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary dictionaryWithObject: countryCode forKey: NSLocaleCountryCode]];
NSString *country = [[NSLocale currentLocale] displayNameForKey: NSLocaleIdentifier value: identifier];
在有英语的设备上我会得到这个:"阿根廷"
但是,在使用其他语言的设备上,我会得到类似的内容: " \ U05d0 \ U05e8 \ U05d2 \ U05e0 \ U05d8 \ U05d9 \ U05e0 \ U05d4"
有什么想法吗?
答案 0 :(得分:3)
这是希伯来语,意思是像argntynhe或argntynhe那样的东西。 (不幸的是,我不会说任何希伯来语。只是将unicode转换为有意义的东西。)
检查设备的语言设置或用于初始化语言环境的语言环境标识符。
试试这个。
NSLocale myLocale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
NSString *country = [myLocale displayNameForKey: NSLocaleIdentifier value: identifier];
我对常数@" en_US";我把它从头顶中取出来了。只需谷歌获取适当的价值。