使用非英语语言将国家/地区代码转换为设备上的国家/地区名称

时间:2014-04-10 10:56:55

标签: objective-c ios7 xcode5 nslocale

这是我正在使用的代码(取自 - 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"

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这是希伯来语,意思是像argntynhe或argntynhe那样的东西。 (不幸的是,我不会说任何希伯来语。只是将unicode转换为有意义的东西。)

检查设备的语言设置或用于初始化语言环境的语言环境标识符。

试试这个。

NSLocale myLocale = [NSLocale localeWithLocaleIdentifier:@"en_US"];
NSString *country = [myLocale displayNameForKey: NSLocaleIdentifier value: identifier];

我对常数@" en_US";我把它从头顶中取出来了。只需谷歌获取适当的价值。

进一步的文档: https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSLocale_Class/Reference/Reference.html