Как заставить Internet Explorer использовать кодировку, указанную в метатеге? - PullRequest
3 голосов
/ 09 июня 2009

Я пытаюсь подготовить демонстрационную HTML-страницу со смешанным английским и арабским контентом. В основном он содержит небольшую таблицу с английскими фразами слева и арабским переводом справа.

Поскольку я не понимаю арабский язык, я взял первые три символа арабского алфавита из ссылки Unicode .

Первая попытка с использованием символьных сущностей (& # x0627; & # x0628; & # x062A;): работает (дисплей: & # x0627; & # x0628; & # x062A;).

Я пытался ввести арабские символы прямо в документе. Чтобы включить это, я сохранил документ как UTF-8 и добавил метатег для типа контента.

При отображении этого документа в Internet Explorer (7) отображается мусор: ا ب ت

Ручное переключение IE на использование UTF-8 (меню «Вид -> Вид -> Юникод») заставляет IE отображать символы корректно. Но как только документ перезагружается, мусор появляется снова.

<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 не содержит метатег для типа контента.

Ответы [ 2 ]

9 голосов
/ 09 июня 2009

Похоже, в вашем метатеге есть небольшая опечатка. Стоит сказать:

<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 голосов
/ 09 июня 2009

попробуйте:

Документ без названия

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

должна быть работа

...