5

私はこの問題を見ています。Chrome / Safariでは、特殊文字(つまり、スペイン語のチルダ'i')を含むコンテンツとして設定されるAjax応答が正しく解釈されません。

この問題は、次の例で完全に要約されています。

FirefoxとIEを試しましたが、どちらも正常に動作します。ChromeだけがWebページを正しく表示していません。これはURLです:http://maixner.eu/#bioご覧の とおり、一部の文字が間違っています。この行:2012-MuzeummodernÃhoumÄ›nÃ、オロモウツ、チェコ共和国あるべき:2012-Muzeummoderníhoumění、オロモウツ、チェコ共和国

開発の詳細:1)AJAXを介してデータをロードするjavascriptファイルを含むindex.htmlページがあります(PHPファイルを呼び出します)2)index.htmlファイルのcontent-typeがUTF-8に設定されています3)すべてのファイルがUTF-8でエンコードされています4 )javascriptは、responseTextを含むXMLHttpRequestクラスを使用してinnerHTMLを挿入します。5)phpファイルにはheader('Content-type:text / html; charset = UTF-8 "');があります。

そしてここ:

同様の(または同じ)問題がありますが、スペイン語の文字があります。UTF-8を使用するようにApacheを設定しました。phpheader('Content-Type:text / html; charset = utf-8');を設定しました。私はhtmlを設定しましたhtmlを設定しましたしかしChorme(Chrome、FF、IEなどのみが正常に動作します)はこれを示しています:

[投稿ヘッダー]...Accept-Charset:ISO-8859-1、utf-8; q = 0.7、*; q = 0.3...[フォームからのランダムな投稿値]------WebKitFormBoundary0wi0NAscQiUkF2hJコンテンツ-処理:form-data; name = "s_name"OxÃgeno100.4FMBogotá<-文字が間違っています!読む必要があります:Oxígeno100.4FMBogotá

元の投稿

4

2 に答える 2

3

私も同じ問題を抱えていました。

基本的に、私の場合、それはブラウザによって送信されたリクエストヘッダーが原因です。

chromeは次を送信します:Content-Type:application / x-www-form-urlencoded、のみ
Firefoxは以下を送信します:Content-Type:application / x-www-form-urlencoded; charset = UTF-8

charset = UTF-8がないと、サーバーはデフォルトでISOになり、誤ってデコードします。

于 2012-05-16T03:32:16.880 に答える
-1

phpヘッダー関数では、文字列を閉じる前に余分な「」があります。

<?php
header('Content-type: text/html; charset=utf-8');
于 2012-05-11T17:53:22.947 に答える