如何在iPhone/iPad应用程序中支持西里尔文?

问题描述:

我使用所有标准的UIKit控件在App Store上有一个简单的程序,现在一些评论者抱怨西里尔语和韩语不被支持? UIKit控件是否不使用Unicode开箱即用?如何在iPhone/iPad应用程序中支持西里尔文?

我该如何解决这个问题?

+0

您是否在测试设备上启用了西里尔文和韩文键盘并重现了错误?他们抱怨什么样的错误?崩溃?奇怪的角色? – CajunLuke 2011-02-10 00:13:58

所有Cocoa NS/CFStrings均符合Unicode(UCS-2内部),包括俄文和韩文字母。因此,除非您的数据在某种程度上通过了单字节字符格式(例如C char[]字符串),否则应自动支持所有合理的语言和字符集。请注意您的存储和导线格式;这就是ASCII通常潜伏的地方。

如果要从Web或基于HTTP的API下载数据,请密切关注Content-Type标头中的字符集。从NSData或原始内存块转换为NSString时,编码始终是其中一个参数。

而且,就像CajunLuke所说,从复制问题开始。如果你需要一个“lorem ipsum”类型的文本,从相应的*复制并粘贴一些随机废话。

我在商店里有一个应用程序在同一时间处理俄语和日语(这是一个日本 - 俄语字典)。没有采取特别措施确保国家字符集支持;然而,无论何时使用单字节字符串,我都会记住它的字符集是什么。

+0

我正在使用JSON REST Webservice联系Google任务,因此我认为它必须是内容类型标题。我应该用哪一个来支持所有语言? – Kristof 2011-02-10 12:38:40

我刚刚测试了日文,并且它在模拟器“开箱即用”中起作用(对于预定义文本字符串,例如Cancel和Done)。检查系统首选项>语言&文本,我看到我有很多支持的语言(当我安装操作系统时我特意做了这些)。

我假设你已经阅读过Apple的Internationalization Programming Topics

要查看本地化文本,您将(大部分)必须自己创建它并将其放入Localizable.strings和.XIB文件中;你会想读一读NSLocalizedString()。