2012-03-01 8 views
9

奇妙な文字が表示されます。 HTML文書は、BOMなしでUTF-8として保存されます。ブラウザでページを見ると、forignの文字は見知らぬ文字の組み合わせ(¬、³、Ã)に置き換えられます。 HTML文書をBOM付きのUTF-8として保存すると、文字が正しく表示されます。HTMLは、私はいくつかのforign文字(á、ó€を、)含まれているいくつかのHTMLを持っている

私は本当に、むしろ私のファイルにBOMを含める必要がないと思いますが、誰もが、それはこれを行う理由を任意のアイデアを持っていますか?それを修正する方法は?あなたはおそらく、あなたのHTMLファイルに正しい文字セットを指定していない

+1

HTMLは、UTF-8でエンコードされたとして自身を識別していますか? –

+0

'meta'タグにcharsetを指定しましたか? –

+0

サーバーとメタタグで適切なことを行い、コンテンツが実際にはUTF-8であることをブラウザに通知しましたか? –

答えて

14

(BOMを含む以外)。 BOM(thanks to Jukka)は、ブラウザをUTF-8モードに送ります。 UTF.8を宣言するには、他の方法を使用する必要があります。

ご使用のサーバー構成へのアクセス権を持っている場合は、サーバーが情報を設定し、間違った文字を送信していないことを確認することをお勧めします。例えば、

<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'> 

または@Mathiasが指摘するように、新しいHTML 5

<meta charset="utf-8"> 
:トリックを行う必要があり、あなたの文書の頭の中でこのメタタグを追加 How to change the default encoding to UTF-8 for Apache?

あなただけのHTMLへのアクセス権を持っている場合は、

(あなたは良いの引数はあなたがHTML 5マークアップを使用しない場合でも、それ以上はありません、それに対してHTML 5のdoctypeを、使用している場合のみ有効。)

+5

+1を試してみてください。現在、 ''を使うことができます。明らかにどちらのサーバーではない:(。あなたは2012年にHTML5のDOCTYPEを使用していない場合、あなたは間違ってそれをやっている) –

+0

@Mathiasが良い点は、 –

+0

症状がテストしたブラウザが実際にBOMに耳を傾けていることを示唆感謝を追加しましたドキュメント自体がエンコーディングを宣言し、ブラウザがエンコーディングを推測または推測するように強制します。 BOMが存在しない場合、データはiso-8859-1、windows-1252、または同様のものとして取られ、 ¬、³、Ã、ââ、¬) –

2

挿入<meta charset="utf-8"> in head
またはサーバー側
にヘッダContent-Type: text/html;charset=utf-8を設定また.htaccessに追加することができます:ここAddDefaultCharset UTF-8詳細はhttp://www.askapache.com/htaccess/setting-charset-in-htaccess.html

+0

'はHTML5専用です。 HTML4以前では、代わりに ''を使用してください。 –

関連する問題