我有阿拉伯文本(
.sql
纯文本)。当我在任何文档中查看它时,它显示如下:
Øر٠اول الÙباى انگليسى ØŒ Øر٠اضاÙÙ‡ مثبت
但是当我使用带有
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
的 HTML 文档时,它会正确显示,如下所示:
حرف اول الفباى انگليسى ، حرف اضافه مثبت
如何将其转换为可读文本?
阿拉伯文本已使用 UTF-8 编码为字节。
您明确告诉 HTML 文档字节以 UTF-8 编码,这就是为什么任何 HTML 查看器都能够正确显示文本。
但是,任何其他文本查看器都不会知道字节是用 UTF-8 编码的,除非您在文本前面放置 UTF-8 BOM,并且查看器支持 BOM。否则,正如您所看到的,文本查看器可能会解释 Latin-1 或类似编码中的字节。因此,您必须手动告诉文本查看器将字节解释为 UTF-8。但实际上如何做到这一点取决于您使用的特定文本查看器。并非所有观众都提供此选项。
我写了这篇有趣的文章,也许可以帮助你
function convertToArabic($input) {
$arabicMap = [
'ب' => 'ب',
'ت' => 'ت',
'Ø«' => 'ث',
'ج' => 'ج',
'Ø' => 'ح',
'Ø®' => 'خ',
'د' => 'د',
'Ø°' => 'ذ',
'ر' => 'ر',
'Ù€' => 'ر',
'ز' => 'ز',
'س' => 'س',
'Ø´' => 'ش',
'ص' => 'ص',
'ض' => 'ض',
'Ø·' => 'ط',
'ظ' => 'ظ',
'ع' => 'ع',
'غ' => 'غ',
'Ù' => 'ف',
'Ù‚' => 'ق',
'Ùƒ' => 'ك',
'Ù„' => 'ل',
'Ù…' => 'م',
'Ù†' => 'ن',
'Ù‡' => 'ه',
'Ùˆ' => 'و',
'ÙŠ' => 'ي',
'ا' => 'ا',
'Ø¥' => 'إ',
'ئ' => 'ئ',
'Ø£' => 'أ',
'Ø¢' => 'آ',
'ÙŽ' => 'ـ',
'Ø¡' => 'ء',
'Ù‰' => 'ى',
'Ù' => 'ِ',
'Ø©' => 'ة',
'ؤ' => 'ؤ',
];
$output = strtr($input, $arabicMap);
return $output;
}