Android浏览器/GUI(古吉拉特邦)上的印度语呈现不正确

Android浏览器/GUI(古吉拉特邦)上的印度语呈现不正确,android,browser,fonts,render,Android,Browser,Fonts,Render,我有一个专门用于在Android设备上查看的网站,我使用古吉拉特语言,我在正确呈现古吉拉特字体方面遇到了一个大问题,我至少希望找到一个解决办法,使古吉拉特字体正常工作,这在任何安卓版本上默认不受支持。我就这样做了 解决办法: -打电话 -查找古吉拉特语的正确unicode字体 -将System/fonts中现有的DroidSansFallback.ttf替换为Gujarati字体(对ICS的System/etc文件夹中的fontsfallback.xml进行一些额外更改) 这有助于我查看古吉拉特

我有一个专门用于在Android设备上查看的网站,我使用古吉拉特语言,我在正确呈现古吉拉特字体方面遇到了一个大问题,我至少希望找到一个解决办法,使古吉拉特字体正常工作,这在任何安卓版本上默认不受支持。我就这样做了

解决办法: -打电话 -查找古吉拉特语的正确unicode字体 -将System/fonts中现有的DroidSansFallback.ttf替换为Gujarati字体(对ICS的System/etc文件夹中的fontsfallback.xml进行一些额外更改)

这有助于我查看古吉拉特语文本,但无法正确呈现

问题是:

1) 半形式的问题,半形式的字母没有正确地呈现,因为它们被认为是组合的,但它们没有

如果您参考上的这个常见问题,它清楚地定义了它应该如何呈现,我也使用了提到的“零宽度Joiner”,使用[unicodeLookup][7]为每个字母使用html代码,但它没有效果

无论如何,这个问题不是主要的,因为它是不适当的,但仍然不是不正确的

2) 此渲染问题导致文本打印错误,请参见下面的两幅图像,第一幅图像在PC上正确渲染为可见,第二幅图像是Android本机浏览器的屏幕截图

标记为1的问题是第一个问题,标记为2的问题是第二个问题,如果您在谷歌上搜索“Devanagari-Unicode Consortium ch09”,您将得到一个涉及此问题的pdf(转到“图9-8.Devanagari中的呈现顺序”),它清楚地解释了正确呈现脚本的方法。似乎android用于呈现脚本的方式不受此类语言的支持,如果可以对android操作系统进行任何更改以正确顺序呈现字体,请提供帮助

这绝对不是字体的问题,因为我尝试过使用windows操作系统使用的Shurti字体,这是渲染这些复杂脚本的问题

可能的解决方案:(不需要)

1) 使用带有位图字体的opera mini(不是我的解决方案)

2) 使用图像而不是文本(同样不是我的解决方案,因为我的网站将有300行列表,对于手机来说也是如此,不想增加页面大小)

请给我一个适当的解决这个问题的办法,提前谢谢

呈现古吉拉特语(以及其他“复杂”脚本,即使用半形式、上下文形式、重新排列等的脚本)需要的不仅仅是字体;它还需要文本布局。文本布局功能通常由主机操作系统或在某些情况下由应用程序提供。Android一直在改进对文本布局的支持,但即使是最新的版本也不能完全适用于所有脚本。换言之:即使是最新版本的Android,单靠字体也无法轻松解决这一问题

可能的解决办法:

  • 开发某种插件或扩展,以纠正古吉拉特邦的布局,并要求用户下载/安装插件以使用您的网站。这可能是一个非常高的阻抗路径,需要在字体、软件开发和目标书写系统方面的大量专业知识。更不用说给用户带来的不便了

  • 开发古吉拉特字体的自定义版本,并在不需要文本布局的站点中使用相应的自定义文本;通过@font-face(webfont)提供字体。如果您没有字体开发经验,那么这也可能是相当具有挑战性的,但可能是最好的方法

  • 将文本渲染为图像;在已知客户端不支持复杂脚本的情况下,执行浏览器嗅探并提供图像。这可能会在很多时候失败(很难跟踪浏览器功能,更不用说一开始就可靠地检测浏览器了)。但保证会给出正确的结果


如果您想在所有设备上查看您的网站,只需将webfonts放在您的网站中即可。web字体是嵌入在服务器上的字体,通过正确的css链接,每个人都可以查看这些字体,而无需在设备上安装字体


对于其他没有网页字体的网站,请使用firefox For android,然后获取插件。现在,您可以查看古吉拉特字体的所有网页,而无需任何复杂的过程或使用android。

谢谢,伙计。我已经在开发第三种解决方案,因为它不需要在客户端进行任何预设置