嗨,我正在开发一个应用程序,以显示我的应用程序中的马拉雅拉姆文字和使用马拉雅拉姆字体为此目的。我得到了正确的输出。但是,当我尝试显示一些英文字母和马拉雅拉姆文时,我使用的字体是Thoolika.Ttf。这就是我给出的输入是“Y?j?lcéd?j«:one”所需的输出是: "തിരുവനന്തപുരം: One“,但我得到的输出是:”തിരുവനന്തപുരം:സഷഫ“这里有什么问题?
发布于 2012-09-14 23:44:34
这种字体使用一种“视觉编码”:您写的字母是A,逻辑上它是一个拉丁字母A,但它在屏幕上呈现为看起来像അ。
可视编码字体是Unicode支持之前的遗物,您现在不应该使用它们。正如你已经发现的,它们的许多缺点之一是,你不能用相同的字体写拉丁字母。当你只有一种视觉编码字体时,要编写拉丁语和马拉雅拉姆语的混合字体,你必须为每段文本切换字体。
我建议放弃此字体,并获得支持正确的马拉雅文代码点的Unicode字体,这样对于shape അ,您将使用真正的逻辑U+0D05马拉雅兰文字母A,而不是U+0041拉丁文大写字母A。然后,您可以自由地混合拉丁文和马拉雅兰文(以及系统为其提供字体的任何其他语言)。
发布于 2012-09-26 02:54:45
嗯,你不能...!正如bobince所说,你不能用ascii字体(这里是“Thoolika.ttf”)混合显示英文+“ascii字体中的马拉雅拉姆语”(“视觉编码”)。
只有当文本是Unicode编码(UTF-8)时,才能做到这一点……尝试使用Anjali旧的lipi (Unicode)字体。从这里开始::smc.org.in/
https://stackoverflow.com/questions/12419115
复制相似问题