Unicode支持android

Cha*_*dan 14 unicode android

我是android新手.我想知道android是否支持Unicode.如果是,那么我们如何通过java代码使用它.我写了一个程序

TextView tv = new TextView(this);
tv.setText("Hello, ?????");
setContentView(tv);
Run Code Online (Sandbox Code Playgroud)

孟加拉语的unicode角色就像盒子一样.

提前致谢.

Sah*_*aja 34

"支持Unicode" - 这只是一个字符编码标准 - 并以可以正确读取的方式显示Unicode文本是完全不同的事情.

后者需要有关脚本的正确字体和复杂的文本呈现引擎,该引擎应用嵌入在字体中的规则来正确显示文本.在Windows中,它由名为Uniscribe的系统库,ATSUI在Apple系统上以及Pango在Linux系统上处理.Android基于Linux,但遗憾的是Google似乎已经删除了处理复杂脚本的部分.(这是一个相当奇怪的决定,因为大多数Android设备都用于通信,包括文本.)使用基于Linux的操作系统(如Nokia N9和N900),复杂脚本在其他移动设备上运行良好

Android还使用户难以安装可供不同应用程序使用的其他字体或键盘布局,而无需"生根"他们的手机或平板电脑.

一些Android设备制造商已经实现了自己的支持(例如,索尼爱立信的ST和MT系列手机似乎非常支持梵文和其他印度语片段.)在一些Android手机上,印度语脚本将在浏览器中呈现正常 - 因为浏览器开发者已经添加了自己的支持 - 但不会在其他应用程序中工作.

请参阅:http://code.google.com/p/android/issues/detail?id = 4153

在Android中正确修复此问题之前,对于想要使用梵文,泰米尔语,孟加拉语,卡纳达语,旁遮普语,泰卢固语,藏语,高棉语,僧伽罗语,马拉雅拉姆语,缅甸语等脚本的用户来说,运行此操作系统的大多数设备似乎都是一个糟糕的选择.等等在他们的智能手机或平板电脑上.

需要修复以支持复杂脚本的Android部分是libskia.so和libwebcore.so.因此,如果您正在编写支持印度语言的应用程序,您可能希望尝试使用自己的修改版本替换这些库.


Bri*_*ell 8

Android确实支持Unicode,但包含的字体不包括所有Unicode字符,并且渲染不支持所有类型的脚本.特别是,所包含的字体仅涵盖西欧(拉丁文),西里尔文,希腊文和CJK字符.即使您安装了新字体,似乎Android也没有正确支持像Devanagari这样的某些形式的文本文本布局,如错误4153中所述.我不太熟悉孟加拉语脚本,知道它是否需要任何像Devanagari那样的特殊渲染,但如果确实如此,那么即使您安装了支持它的字体,它也可能在Android上不受支持.

  • @softy因为梵文需要专门的字形重新排序支持; 字符在文本中出现的顺序与它们显示的顺序不同.简单地改变字体无济于事; 你需要能够改变字形显示顺序的东西.某些高级字体格式(如AAT和Graphite)支持这种格式,但Android不支持这些格式.所以它需要专门支持梵文重新排序,或者添加对其中一种字体格式的支持,以正确显示梵文文本. (3认同)