我想在 BlackBerry 设备上的 j2me 应用程序中的 LabelField 中显示一些阿拉伯文本。
假设设备上安装了阿拉伯字体。
在本地化资源中,如果使用阿拉伯语言环境,则所有文本都以 Unicode 序列保存。但是,如果我明确使用这种格式,并设置阿拉伯语区域设置,则它不起作用:
Locale.setDefault(Locale.get(Locale.LOCALE_ar, null));
add(new LabelField("\u0627\u0644\u0639\u0631\u0628\u064A\u0629"));
请指教:
- 我应该以什么格式或代码页保存阿拉伯文本?
- 如何使用安装的阿拉伯字体在标签中显示阿拉伯文本?
谢谢你!
解决方案是将 Unicode 序列作为 char 数组传递:
char[] text = new char[] {'\u0627', '\u0644', '\u0639',
'\u0631', '\u0628', '\u064A', '\u0629'};
add(new LabelField(text));
因此,要显示 String 中保存的 Unicode 序列,我们需要将此 String 解析为字符:
private char[] getUnicodeChars(String string) {
char[] result = new char[] {};
String[] charCodes = split(string, "\\");
result = new char[charCodes.length];
for (int i = 0; i < charCodes.length; i++) {
result[i] = (char) Integer.parseInt(charCodes[i].substring(1), 16);
}
return result;
}
代码中的某处:
String txt = "\u0627\u0644\u0639\u0631\u0628\u064A\u0629";
add(new LabelField(getUnicodeChars(txt)));
并且不需要切换Locale。当然应该安装阿拉伯字体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)