我正在开发一个使用阿拉伯文本的 Android 应用程序。 TextView 中的文本使用自定义字体显示。问题是某些暂停标记无法正确显示。当我使用 HTML 时,相同的文本、相同的字体在浏览器上完美地显示。但是Android TextView有问题。
浏览器显示:
我尝试了多种解决方案,包括以下内容,但没有一个有效
我在textView上应用以下样式
<style name="ArabicTextViewStyle">
<item name="fontFamily">@font/alquran_indopak_by_quranwbw_v_4_2_2</item>
<item name="singleLine">false</item>
<item name="android:textDirection">rtl</item>
<item name="android:textSize">30dp</item>
<item name="textAppearanceTitleMedium" />
</style>
HTML 文件如下:
<html>
<head>
<style>
@font-face { font-family: JuneBug; src: url('AlQuran-IndoPak-by-QuranWBW.v.4.2.2.ttf'); }
h2, p {
font-family: JuneBug;
}
</style>
</head>
<body>
<h2>
صِرَاطَ الَّذِیْنَ اَنْعَمْتَ عَلَیْهِمْ ۙ۬— غَیْرِ الْمَغْضُوْبِ عَلَیْهِمْ وَلَا الضَّآلِّیْنَ
</h2>
</body>
</html>
我不知道为什么相同的文本和字体在浏览器中可以正确显示,但在 Android 上却不能。两个地方的文本均采用 UTF-8 编码。 我已经在 Android Studio 模拟器以及多个物理设备上进行了尝试,但问题仍然存在。
根据这里的答案阿拉伯语发音符号未正确显示 所有阿拉伯字符都可以使用单个 UTF-16 代码单元(2 个字节)进行编码,但它们可能需要 2 或 3 个 UTF-8 代码单元(每个 1 个字节),因此如果您只编码阿拉伯语,则 UTF-16 会是一个更节省空间的选择。 检查这是否有效,并尝试 https://github.com/mobin-tabaran-intelligent-struct/MTTextView 来选择你的字体。
使用不同的脚本,该脚本在 Android 设备上有问题,
不要使用古兰经 2:2 中具有以下模式的脚本 َْ巴َ 999
使用这个脚本 2019-09-09 14:01:01 来源: 您可以从以下位置下载此脚本 https://qul.tarteel.ai/resources