在UILabel中显示亚洲unicode字符串

时间:2010-02-19 06:02:22

标签: iphone objective-c unicode ascii uilabel

我们如何在UILabel中显示亚洲unicode值

\ U2013 \ U0012 \ U2013 \ U00e6 \ U2013 \ U2202 \ U2013 \ U220f \ U2013 \ U03c0 \ U2013 \ U00ee \ U2013 \ U220f \ U2013 \ U03c0 \ U2013 \ U00aa \ U2013 \ U221e \ U2014 \ U00c5

由于

1 个答案:

答案 0 :(得分:5)

我不确定该文的特别“亚洲”是什么,

  • U + 2013是一个短划线( - )
  • U + 00ee是带有抑扬符(î)
  • 的小写'i'
  • U + 00e6是ae(æ)
  • 的旧结扎线
  • U + 2202是偏微分(∂)的字符。

如果您的程序已被本地化[也就是说该程序将以多种语言提供],则应将文本放在Localizable.strings文件中。当您在Xcode中创建其中一个文件时,它将自动以合适的编码(很可能是UTF16)保存,并且它将包含在您构建的软件中。该文件具有以下格式:

 "Base language text" = "Translation text";
 "Good evening!" = "こんばんは";

您可以使用以下方式参考翻译:

NSString *goodEvening = NSLocalizedString (@"Good evening!", @"An interjection said during the latter part of the day.");

此功能会根据用户在iPhone或Mac上选择的区域设置,自动将字符串转换为软件具有的任何可用本地化(通过搜索适当的Localizable.strings文件)。如果找不到合适的翻译,它将返回原始基本语言字符串。 NSLocalizedString的第二个参数用于为翻译提供上下文或含义,它不会包含在您的软件中。

如果您只想显示文本,可以在NSString常量中包含Unicode代码点,但必须使用小写u(除非它们是32位代码点):

NSString *myPunctuation = @"\u2013\u00ee"; // lowercase u
NSLog (@"%@", myPunctuation);

...

myPunctuation = @"\U00002013\U000000ee";  // uppercase U
NSLog (@"%@", myPunctuation);