如何在网站上显示缅甸/缅文字体的内容?

7
我有一个网站,服务于使用缅甸语的缅甸人。问题是在缅甸国内,他们不使用Unicode格式,而是使用Zawgyi编码格式。我的网站内容显示出现了问题。我该如何解决这个问题?

enter image description here

这个错误只出现在iPhone上。


是的,请确保它是一个编码或字体问题......如果您真的需要一个特定的_字体_,比如Zawgyi字体,您需要考虑将字体提供给网站用户,就像@daxim所说的那样。这与编码不同,编码是文本存储和传输的“语言”。 - Mike M
您可以使用Unicode计算机编码存储许多不同语言的文本。但是,为了正确显示每种语言,用户可能需要使用不同的字体。 - Mike M
如果你真的对理解编码感兴趣,有很多好的阅读材料,比如:http://kunststube.net/encoding/ - Mike M
1
需要更多细节:您是否在使用<meta charset="utf-8">的页面中放置Zawgyi格式的文本?如果是这样,诀窍是首先通过文本转换步骤将缅甸文本转换为正确的Unicode,以便您可以在统一字符集中提供文档。在您的设置中,一个小示例页面是什么样子的,该页面的哪个部分使用了哪些字符集? - Mike 'Pomax' Kamermans
1
@Mike'Pomax'Kamermans 看起来这段文本是Unicode编码(或者至少不是Zawgyi编码)。因为U+1031在Unicode中排在U+1091之后,而在Zawgyi编码中则会反过来显示。 - Aposhian
显示剩余4条评论
3个回答

1
您可以使用字体链接和嵌入方式,使用font-family属性即可。所有字体都会正确地显示在任何设备或浏览器上,无需在设备上安装特定的字体。如果您想检查其他缅甸语字体链接,请访问https://mmwebfonts.comquas.com/#how-to-use

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <link rel="stylesheet" href='https://mmwebfonts.comquas.com/fonts/?font=myanmar3' />
 <link rel="stylesheet" href='https://mmwebfonts.comquas.com/fonts/?font=zawgyi' /> 
 <style type="text/css">
  .zawgyi{
   font-family:Zawgyi-One;
  }
  .unicode{
   font-family:Myanmar3,Yunghkio,'Masterpiece Uni Sans';
  }
 </style>
</head>
<body>
 <h3>This is for ZawGyI font</h3>
 <p class="zawgyi">
  သည္စာသည္ ေဇာ္ဂ်ီ ျဖင့္ေရးေသာစာျဖစ္သည္
 </p>
 <h3>This is for unicode (myanmar3) font</h3>
 <p class="unicode">
  သည်စာသည် unicode ဖြင့်ရေးသောစာဖြစ်သည်
 </p>
</body>
</html>


1

knayi是一个很好的库,可以转换或检测(Unicode和Zawgyi)字体。

您可以通过CDN或NPM加载脚本,并使用kanayi.fontConvert();


// 预期参数
kanayi.fontConvert(content, 目标字体类型, 原始字体类型)


例子

knayi.fontConvert('မဂၤလာပါ', 'unicode', 'zawgyi') // မင်္ဂလာပါ
knayi.fontConvert('မဂၤလာပါ', 'unicode') // မင်္ဂလာပါ

顺便说一下,我用kanayi制作了一个WordPress小部件。
https://github.com/ronaldaug/auto-font


-2
请为字体回退添加2到3个额外的字体。
.zawgyi{
    font-family:Zawgyi-One,second font,third font;
}

如果字体不支持第一个,那么第二个会起作用,如果还不行,则在不同平台上使用第三个。


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