使用不受支持的字体的阿拉伯语 - 英语音译

时间:2014-07-18 09:10:06

标签: utf-8 fonts character-encoding nlp arabic

我正致力于Ar和En文本的语音音译。

以下是按字符替换显示字符的链接:https://github.com/Shnoulle/Ar-PHP/blob/master/Arabic/data/Transliteration.xml

现在的问题是:

我正在处理字体样式robert_bold.ttfrobert_regular_0.ttf,其中包含underlineoverline的一些典型字符,如此快照

enter image description here

我有.ttf文件,所以我可以在我的系统上看到这些字体。但是在我的应用程序中或上面Transliteration.xml个字符被视为垃圾邮件,如[, } [等。

如何在Transliteration.xml文件中添加对此不受支持的字符的支持?

<pair>
  <search>ي</search>
  <replace>y</replace>
</pair>
<pair>
  <search>ى</search>
  <replace>a</replace>
</pair>
<pair>
  <search>أ</search>
  <replace>^</replace> // Here is one of the character s_ (s with underscore not supported)
</pair>

1 个答案:

答案 0 :(得分:0)

字体似乎不是Unicode编码的,但在某些任意分配的代码中包含带下划线的字母。虽然这在某种程度上起作用,但它当然不适用于各种应用程序。它仅在使用该特定字体时才有效。

正确的方法是使用正确的Unicode 字符,例如U + 1E0F LATIN SMALL LETTER D WITH LINE BELOW“ḏ”,并且,为了渲染,尝试查找fonts containing it

另一种方法是使用带有一些标记的基本拉丁字母,比如<u>d</u>。这意味着在以后的处理中不得将文本视为纯文本,并且在渲染中,标记应被解释为请求字母下的一行。