在Android中使用马拉雅拉姆Ascii字体显示英文文本



嗨,我正在开发一个应用程序,在我的应用程序中显示马拉雅拉姆语单词,并为此使用马拉雅拉姆字体。我得到了正确的输出。但当我尝试在显示一些英文字母和马拉雅拉姆语时,我使用的字体不是Thoolika.Ttf。这就是我给出的输入是"Y¢j?lcÉd?j«:一"所需输出为:"തിരുവനന്തപുരം:一"但我得到的输出是:"തിരുവനന്തപുരം: സഷഫ"这里的有什么问题

此字体使用"视觉编码":您编写字母A,它在逻辑上是拉丁字母A,但在屏幕上显示为类似

视觉编码字体是Unicode支持之前的遗留问题,现在不应该使用它们。正如你所发现的,他们的许多缺点之一是,你不能用同一种字体写拉丁字母。当你只有一种视觉编码的字体时,要想混合使用拉丁语和马拉雅拉姆语,你必须为每段文本切换字体。

我建议删除这种字体,并使用支持正确马拉雅拉姆语代码点的Unicode字体,这样对于形状,您使用的是真正的逻辑U+0D05马来西亚字母a,而不是U+0041拉丁大写字母a。然后,您可以自由地混合拉丁语和马拉雅拉姆语言(实际上,系统有字体的任何其他语言)。

好吧,你不能。。。!正如bobince所说,你不能在字体为这种ascii字体(此处为"Thoolika.ttf")的字段中混合显示英语+"用ascii字体表示的马拉雅拉姆语"("视觉编码")…

只有当文本是Unicode编码(UTF-8)时,才能实现这一点。。。尝试使用Anjali旧的lipi(Unicode)字体。从这里开始::smc.org.in/

最新更新