@ font-face在android Cordova中不能使用unicode Malayalam

时间:2015-09-09 04:11:33

标签: android cordova

在android @ font-face中不适用于UTF角色。(使用cordova在网页控制中托管的网页)
该代码适用于Android浏览器和桌面版Chrome浏览器。 它不会应用应用程序中的更改。
观察到如果没有UTF字符,则应用字体样式。还观察到只有具有UTF的行才会应用Web字体样式。
这表明font-face中提供的路径是正确的。 尝试将UTF字符更改为编码的十六进制值,但没有帮助。

1 个答案:

答案 0 :(得分:0)

我不知道为什么会有投票结果
在花了一些时间后我可以让它发挥作用。
问题不仅限于马拉雅拉姆语,它可以用于其他Unicode语言字符。

问题

在Android 4.3中,角色" ്ര" details about this issue and work around is given here
我需要这个用于使用cordova(phonegap)开发的Android应用程序,因此生根和安装不是一个选项 我尝试使用嵌入式字体(@ font-face)进行Web视图,奇怪的是,它不适用于Android中的Web视图,但在同一设备的浏览器中工作得很好。

解决方案

得到this stack over flow的提示,这指向this Solution,谢谢你
基本上我们需要获得基于ASCII的字体并将unicode转换为映射ASCII。
提供的解决方案是使用JAVA并且总是有可能遗漏一些字符。我使用这个解决方案遇到的另一个问题是,如果混合使用英语和马拉雅拉姆语,那么解决方案就会产生不良后果。

所以我创建了this jquery plugin

基本上它执行以下操作 1)确定最长的马拉雅拉姆语字符序列并使用带有可配置类名的标签进行包装。
此过程将英语和非英语组分开。
2)然后使用可配置的映射w.r.t字体将每个分组的Malayalam字符序列转换为ASCII。
解决了英语和马拉雅拉姆语混合的问题,修复了丢失某些字符的问题,并且@ font-face也正常工作。我能够创建2个字体映射。
到目前为止,解决方案对我有用 我觉得可以进行一定程度的优化。