如何强制Internet Explorer使用元标记中给出的编码?

gyr*_*olf 3 unicode internet-explorer utf-8 character-encoding internet-explorer-7

我正在尝试准备一个混合英语和阿拉伯语内容的演示html页面.基本上它包含一个小表,左边是英文短语,右边是阿拉伯语翻译.

因为我不懂阿拉伯语,所以我从Unicode参考中获取了阿拉伯字母的前三个字符.

第一次尝试,使用字符实体(ابت):它工作(显示:ابت).

我试图直接在文档中输入阿拉伯字符.为了实现这一点,我将文档保存为UTF-8并添加了内容类型的元标记.

在Internet Explorer(7)中显示此文档显示垃圾:ابت

手动切换IE以使用UTF-8(菜单"视图 - >视图 - > Unicode")使IE显示字符correclty.但是一旦文档重新加载,垃圾就会再次出现.

<html>
  <head>
  <meta content="content-type" content="text/html; charset=utf-8">
  </head>
  <body>
    <table width="95%" border="1">
      <colgroup><col width="50%" /><col width="50%" /></colgroup>
      <tbody>
        <tr>
          <th>English</th><th>Arabic</th>
        </tr>
        <tr>
          <td>Test phrase</td>
          <td dir="rtl">? ? ?</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用Firefox测试显示正确的阿拉伯字母.(但是对"rtl"方向的解释是不同的:IE显示文本右对齐,Firefox左对齐.)

任何提示如何说服IE使用文档中给出的编码?

这是本地存储的html文件的效果吗?编辑此StackOverflow条目时,我会观察

  • 阿拉伯字符按预期呈现,
  • 菜单中的编码自动切换为"Unicode(UTF-8)",
  • 并且html的源代码不包含内容类型的元标记.

Rom*_*Rom 9

看起来你的元标记中有一个小错字.它应该说:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      ^ you had 'content' here,   and forgot to close the tag here ^
Run Code Online (Sandbox Code Playgroud)

我没有IE7方便,所以无法检查是否是原因.这两个版本在IE8上运行良好