web-dev-qa-db-ja.com

default.htmlの文字エンコーディングをUTF-8に設定するにはどうすればよいですか?

私は過去数時間かけてHTML 4.01 Strictを検証するためにWebサイトを取得しましたが、実際には成功しましたが、取り除けない警告がまだ1つあります。警告は次のとおりです。

文字エンコーディングが一致しません!

HTTPヘッダー(iso-8859-1)で指定された文字エンコードが、要素(utf-8)の値と異なります。この検証には、HTTPヘッダー(iso-8859-1)の値を使用します。

問題のページは www.dubiousarray.net/default.html です。ページのソースからわかるように、次のメタ要素があります。

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

また、default.htmlファイルがUTF-8エンコーディングで保存されていることを確認しました。奇妙なことに、サイト内の他のすべてのページはこの警告なしで検証され、それらは同じメタタグを持ち、まったく同じ方法で保存されています。私はそれがサーバー設定と関係があると確信しています。現時点では、.htaccessファイルは次のようになります。

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
AddDefaultCharset UTF-8

このページ に示されているすべての修正を試しましたが、どれも機能しませんでした。この警告を取り除く方法について誰かが何か考えを持っていますか?最後に、Firefoxでページを右クリックして[ページ情報を表示]を選択すると、default.htmlはISO-8859-1と表示され、他のすべてのページはUTF-8と表示されます。

ありがとう、ジェイコブ

編集:他に注意すべきことは、すべてのhtmlファイルがまったく同じ方法で作成および保存されている(BOMなしでUTF-8に設定された文字エンコーディング)が、default.htmlのみがUTF-8として表示されないことです。 。したがって、.htaccessファイルには署名がないため、サーバーがdefault.htmlファイルに対して特別なことをしていると思います。

17
Jacob de Lacey

HTTPレベルのヘッダーを置き換える必要があります。

これはうまくいくはずです:

<?php 
 header('Content-type: text/html; charset=utf-8'); 
?>

上記はあなたのファイルの最初のものでなければならないことに注意してください。例外なく。参照 http://us2.php.net/manual/en/function.header.php

さまざまなWebスタックで文字セットヘッダーを変更する方法の一般的な情報については、 http://www.w3.org/International/O-HTTP-charset を参照してください。

ラリー

26
Larry K

サーバーはHTTPヘッダーでドキュメントをISO-8859-1として明確にマークしています。適切なエディターでUTF-8エンコードを使用してdefault.htmlを保存してみてください。

2
hannson

さて、私は私の問題の部分的な解決策を考え出しました。警告を引き起こしていたのはdefault.htmlファイルだけだったので、サーバーがその名前のために何か特別なことをしていると思いました。そこで、default.htmlファイルと同じ内容のhome.htmlという名前の新しいファイルを作成し、.htaccessファイルに新しいファイルを指定しました(以下の3行目を参照)。

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
DirectoryIndex home.html
AddDefaultCharset UTF-8

これにより問題が修正され、すべてのファイルがUTF-8として認識されるようになりました。サーバーがdefault.htmlファイルに対して何をしていたのか、それに関する設定がどこにあるのかはまだわかりませんが、私の問題がなくなったので、それを忘れます。

1
Jacob de Lacey

これをコードに含めます:

<meta charset="utf-8" />
0
Charuvind Atre

AddDefaultCharset.htaccessから削除してエンコードを確認できますか? WebページのHTMLソースを保存して開きました。エンコーディングはUTF-8として検出されました。ただし、ウェブサーバーが提供する同じウェブページを表示する場合、エンコーディングはISO-8859-1です。そのため、以前の冗長なルールを削除することをお勧めします。

0