3

我想准备一个混合英语和阿拉伯语内容的演示html页面。 基本上它包含一张左边是英文短语的小桌子,右边是阿拉伯语翻译。如何强制Internet Explorer使用元标记中给出的编码?

因为我不懂阿拉伯语,所以我从Unicode reference中取出阿拉伯字母的前三个字符。

首先尝试,使用字符实体(ا ب &#x062A):它的工作原理(显示:اب&#x062A)。

我试图直接在文档中输入阿拉伯字符。为了实现这一点,我将文档保存为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> 

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

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

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

  • 如预期阿拉伯字符被渲染,
  • 在菜单的编码自动切换到“的Unicode(UTF-8)”,
  • 和的HTML源不包含内容类型的元标记。

回答

9

看起来你的meta标签中有一个小的错字。它应该说:

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

我没有IE7方便,所以不能检查是否这是原因。两个版本都可以在IE8上正常工作

+0

非常感谢!我通过复制/粘贴创建了元标记,但仅限于以“Content-Type”开头的部分。 – gyrolf 2009-06-09 07:17:59

0

尝试:

无标题文档

<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> 

必须工作

相关问题