internet explorer 自動選択 なぜIEはUTF-8エンコードされたテキストを表示しなかったのですか?




文字コード 変換 サイト (4)

デフォルトのIEエンコーディングは西ヨーロッパ言語(ISO)なので、手動でUTF-8に変更するか、IEのように指定して次のようなエンコーディングを使用する必要があります。

  • HTML 4.01

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

  • HTML 5

    <meta charset="UTF-8">

また、 <html>タグでlang属性を使用して言語を宣言する必要があります

    <html lang="zh">

中国語

私はKenticoで動くウェブサイトに表示しようとしている中国語の文字がいくつかあります。 このテキストはKenticos FCKエディタにコピー/ペーストされ、保存され、サイトに表示されます。 Firefox、Chrome、およびSafariでは、文字は期待通りに表示されます。 IE 8標準モードでは、ボックスのみが表示されます。

テキストはUTF-8でエンコードされていて、わかる限り、サーバーからの応答で正しくエンコードされています。 Content-Type: text/html; charset=utf-8 Content-Type: text/html; charset=utf-8レスポンスヘッダー、および<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> サーバーからHTMLをダウンロードし、問題の文字のバイトを元のUTF-8テキスト文書と比較すると、HTMLにBOMが含まれていないことを除いて、バイトはすべて一致します。

これは、標準モードでIE 8に固有のようです。 IE8でQuriks:それは動作します。 IE 7標準:それは動作します。 IE 7 Quirks:動作します。 標準モードでこの問題がどのように起こるかはわかりません。

不思議なことに、IEからのビューソースの場合、文字がソースビューに正しく表示されます。

何がここで間違っているかもしれないかについての任意の提案? 私は明白な何かを欠いていますか


私はこれについて詳しく説明することはできません。 しかしこれは確かに既知の問題です。

小さな再現可能なコードスニペットは次のとおりです。

<!DOCTYPE html>
<html lang="en">
    <head><title>test</title></head>
    <body><p>&#65185;<br>0 0</p></body>
</html>

UTF-8で保存し、IE8で表示します。 あなたは何も見ません。 0 000置き換え、ページをリロードします。 それは正常に動作します! これは絶対に驚くべきことです。 奇妙なことに、 0 0aaまたは</p><p>で置き換えると、それも修正されます。 それは、空白のレンダリングに失敗した場合と何か関係があります。

申し訳ありませんが、私はこれを証明する権限のあるリソースを持っていませんが、これはIE8が期待しているほど良くないという別の証拠です。 最善の策は、HTMLを変更したり、段階的に構築したりして、ある時点でうまく動作するようにするか、次のメタタグを頭に付けてIE8を強制的にIE7モードにすることです。

<meta http-equiv="X-UA-Compatible" content="IE=7" />


私は、ファイルのUTFフォーマットを「バイトオーダーマーク付きUTF8」に変更することによって、同じ問題を修正することができました。

(私が使用するエディタでは、ファイルフォーマットを簡単に切り替えることができますが、それ以外の方法はわかりませんが、異なるUTFファイルフォーマットを見てみる価値があります。IE(8)はByte Order MarksなしのUTF8を好きではありません...)

私は上記の答えからスニペットを再現することもできました。

<!DOCTYPE html>
<html lang="en">
    <head><title>test</title></head>
    <body><p>&#65185;<br>0 0</p></body>
</html>

しかし、私の結果は、UTF-BOMなしで(間違った文字が現れたり、空白のレンダリングのように見えなかったりなど)、間欠的でした。 lang = "fr"とlang = "es"ですが、すべてのケースでUTFファイル形式を変更すると、私のアクセント表示の問題が永久に解決されたようです。 :)

私は100%UTFに精通しているわけではありませんが、文字が2バイトでコーディングされている場合、ホワイトスペースの問題や誤解された文字がソースのバイトの整列に関連していると考える必要があります。





ie8-compatibility-mode