阿拉伯文字显示奇怪的字符الÙباى انگليسى ØŒ

问题描述

我有阿拉伯语文本(.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。但是您实际上如何做到这一点取决于您使用的特定文本查看器。并非所有观看者都提供此选项。