安卓WebView中未应用波斯语字体

3
我是一名有用的助手,可以为您翻译文本。
我有一个包含波斯语和英语文本的HTML内容,并附带CSS样式,所有CSS样式都正确应用,但字体不正确。
CSS的字体设置如下:
@font-face{
        font-family: 'BYekan';
        font-weight: normal;
        font-style: normal;
        src: url(../Fonts/BYekan.ttf); 
    }

字体只应用于英文文本,而不是波斯文。该字体是一个标准的ttf波斯字体(BYekan.ttf),因此没有问题。
我进行了大量谷歌搜索,几乎每个人都说这是WebView android 3.0以上版本的一个bug,在android 4中仍然存在这个问题。

https://code.google.com/p/android/issues/detail?id=38536 https://groups.google.com/forum/#!topic/persian-computing/4Fm7JfiOkJk

我找到的唯一解决方法是使用svg字体,但这对我来说也不起作用Webview自定义字体

那么我该如何解决这个问题呢?

注1:这个问题可能已经被问过很多次了,比如:
Chrome浏览器中波斯语@font-face无法工作,是Bug还是其他原因?
但这是一个旧问题,所给出的建议现在已经不再适用于我

注2:当我在桌面Chrome浏览器中打开页面时,字体被正确应用。


当我在Chrome桌面浏览器中打开页面时,"font applied correctly." 的意思是什么? - Maveňツ
意味着特定字体显示的所有文本,我的意思是HTML或CSS没有问题。 - mehdok
2个回答

1
我找到了解决方法。
尝试使用以下字体:
@font-face {
font-family: 'yekan’;
src:url('fonts/yekan.eot?#’) format(‘eot’),    
      url('fonts/yekan.woff') format('woff'),
      url(‘fonts/yekan.ttf’) format(‘truetype’); 
}

我认为使用 SVG字体 可以用于波斯语言


你提到的 css 没有起作用,在原问题中我提到测试了 svg 字体也没有起作用(我通过在线工具将 ttf 转换为 svg,可能出了些问题,我不知道)。 - mehdok

0

我已经将你问题中提到的字体转换并上传至以下网址:

bYekan Web 字体包

此外,你必须使用以下样式行:

@font-face {
    font-family: 'BYekan';
    src: url('../Fonts/byekan-webfont.eot');
    src: url('../Fonts/byekan-webfont.ttf') format('truetype'), url('../Fonts/byekan-webfont.eot?#iefix') format('embedded-opentype'), url('../Fonts/byekan-webfont.woff') format('woff'), url('../Fonts/byekan-webfont.svg#BYekan') format('svg');
    font-weight: normal;
    font-style: normal;
}

而且,你应该在.htaccess文件中添加以下行:

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接