阿拉伯文本显示奇怪的字符 الÙءا٠انÚ́ليØ3Ù ØŒ

问题描述 投票:0回答:2

我有阿拉伯文本(

.sql
纯文本)。当我在任何文档中查看它时,它显示如下:

حر٠اول الÙباى انگليسى ØŒ حر٠اضاÙÙ‡ مثبت

但是当我使用带有

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
的 HTML 文档时,它会正确显示,如下所示:

حرف اول الفباى انگليسى ، حرف اضافه مثبت

如何将其转换为可读文本?

unicode arabic farsi charset
2个回答
4
投票

阿拉伯文本已使用 UTF-8 编码为字节。

您明确告诉 HTML 文档字节以 UTF-8 编码,这就是为什么任何 HTML 查看器都能够正确显示文本。

但是,任何其他文本查看器都不会知道字节是用 UTF-8 编码的,除非您在文本前面放置 UTF-8 BOM,并且查看器支持 BOM。否则,正如您所看到的,文本查看器可能会解释 Latin-1 或类似编码中的字节。因此,您必须手动告诉文本查看器将字节解释为 UTF-8。但实际上如何做到这一点取决于您使用的特定文本查看器。并非所有观众都提供此选项。


0
投票

我写了这篇有趣的文章,也许可以帮助你

function convertToArabic($input) {
$arabicMap = [
     'ب' => 'ب',
    'ت' => 'ت',
    'Ø«' => 'ث',
    'ج' => 'ج',
    'Ø­' => 'ح',
    'Ø®' => 'خ',
    'د' => 'د',
    'Ø°' => 'ذ',
    'ر' => 'ر',
    'Ù€' => 'ر',
    'ز' => 'ز',
    'س' => 'س',
    'Ø´' => 'ش',
    'ص' => 'ص',
    'ض' => 'ض',
    'Ø·' => 'ط',
    'ظ' => 'ظ',
    'ع' => 'ع',
    'غ' => 'غ',
    'Ù' => 'ف',
    'Ù‚' => 'ق',
    'Ùƒ' => 'ك',
    'Ù„' => 'ل',
    'Ù…' => 'م',
    'Ù†' => 'ن',
    'Ù‡' => 'ه',
    'Ùˆ' => 'و',
    'ÙŠ' => 'ي',
    'ا' => 'ا',
    'Ø¥' => 'إ',
    'ئ' => 'ئ',
    'Ø£' => 'أ',
    'Ø¢' => 'آ',
    'ÙŽ' => 'ـ',
    'Ø¡' => 'ء',
    'Ù‰' => 'ى',
  'Ù' => 'ِ',
   'Ø©' => 'ة',
    'ؤ' => 'ؤ',
];

$output = strtr($input, $arabicMap);
return $output;

}

© www.soinside.com 2019 - 2024. All rights reserved.