4

文字エンコーディングがデフォルトで iso-8859-1 に設定されているように見えるサーバーでホストされている多言語 Web サイトがあります。

ページを utf-8 にするのが最善だと考え、これを宣言するためのメタ タグを含めました。残念ながら、このメタ タグはオーバーライドされているようで、ページのデフォルトは iso-8859 です。

ドイツ語とオランダ語のページの多くの特殊文字が正しく表示されません。

サーバーのデフォルトを utf-8 などに変更する必要がありますか? サーバーのデフォルトを完全に削除できますか?うーん...ここで何をするのが最善か本当にわかりません。

どんなアドバイスも素晴らしいでしょう!

4

3 に答える 3

6

HTML ページが HTTP 経由で提供される場合、コンテンツ タイプの HTML メタ タグは使用されません。代わりに、HTTP 応答のコンテンツ タイプ ヘッダーが使用されます。Netパネルで、たとえばFirebugを使用してコンテンツ タイプ ヘッダーを特定できます。

代替テキスト

これを変更する方法は、使用しているプログラミング言語やウェブサーバーによって異なりますが、現在の質問からは不明です。質問履歴によると、PHPを使用しているようです。その場合、応答に文字を出力する前に、PHP ファイルに次の行を追加する必要があります。

header('Content-Type: text/html; charset=UTF-8');

以下も参照してください。


HTTP 応答ヘッダーを変更できない場合は、使用しているプログラミング言語と Web サーバーについて詳しく説明する必要があります。このようにして、より適切な回答を提供できます。

ISO-8859-1 に固執したい場合は、ページが UTF-8 ではなく ISO-8859-1 として保存されていることを確認する必要があります。そうしないと、UTF-8 で保存されたリソースを ISO-8859-1 として表示すると、一部の文字が実際に文字化けする可能性があります。

于 2011-01-06T19:19:51.593 に答える
3

考えられる解決策はいくつかありますが、最もクリーンな解決策は、文字エンコーディングを適切に宣言することです。

HTTP サーバーから Web ページを提供する場合、エンコードは通常、HTML ファイルのメタタグではなく、Content-typeHTTP ヘッダーによって指定されます。

Web サーバーはおそらく のようなものを送信しておりContent-type: text/html; charset=ISO-8859-1、それを変更する必要があります。

これを行う方法は、Web サーバーによって異なります。

追加として: はい、 iso-8859-1 はドイツ語に適しています。すべての西ヨーロッパ言語で機能します。ただし、いくつかの文字が欠けていますが、特にユーロ記号 (iso-8859-15 にあります) が欠けています。ただし、ほぼすべての言語をカバーするため、UTF-8 を使用することをお勧めします。

于 2011-01-06T19:20:16.387 に答える
0

このウィキペディアの記事で、サポートされている文字とカバーする必要がある言語を確認できます。それによると、ドイツ語は完全にサポートされており、オランダ語はほぼサポートされています。

正しい文字エンコーディングを選択するだけではなく、そのエンコーディングを使用してページを保存する必要もあります。ページを ISO-8859-1 として保存し、UTF-8 であるというコンテンツ タイプを使用すると、ブラウザによって正しくデコードされません。ISO-8859-1 と Unicode の両方が必要な文字をサポートしていますが、コンテンツ タイプがページが実際に保存される方法に対応していることを確認する必要があります。

于 2011-01-06T19:23:33.283 に答える