4

私はこれと同様の問題を抱えています:jQuery AJAX文字エンコードですが、そこで言及されている解決策は私にとってはうまくいきます。

問題を示すために3つの簡単なファイルを作成しました。

PHPファイル:

//prueba.php
echo "nº one two € áéíóú";

JavaScriptファイル(私はJQueryを使用しています)

//Javascript file
    function prueba() {
        $.ajax({
            type: "GET",
            contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
            url: "prueba.php",
        }).done(function( data ) {
            $("#prueba").text(data); 
            //$("#prueba").html(data); //It does the same encoding error 
        });
    }

** HTMLファイル:**

<html>
    <head>
        <title>E-COMMERCE</title>
        <meta content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />

        <script src="javascript/jquery.js" type="text/javascript"></script>
        <script src="javascript/javascript.js" type="text/javascript"></script>
    </head>

    <body>
        <a href="javascript:prueba()">Prueba</a>
        <div id="prueba"></div>
    </body>

</html>

そして、リンクPruebaをクリックすると、次のように表示されます。

Prueba
n� uno dos � �����

現在のWebサイトは完全に機能しますが、ajaxを使用せず、これを実行しているのと同じサーバーにあるため、返されるものではなくISO-8859-1を返すようにjqueryに指示するにはどうすればよいですか?理想は常にutf-8を使用することですが、utf-8に変更すると、現時点では余裕のない問題が発生します。

4

2 に答える 2

4

ブラウザで正しいエンコーディングを使用するには、phpページにHTTPヘッダーを追加する必要があります。

header("Content-Type: text/plain; charset=ISO-8859-1");

または、HTMLのメタタグにエンコーディングを配置することもできます。

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
于 2012-11-08T10:27:38.783 に答える
0

phpファイルで、出力をUTF-8でエンコードする必要があります。

echo utf8_encode("nº one two € áéíóú");

次に、htmlファイルで文字セットを設定する必要があります。

<html>
<head>
    <meta charset="utf-8"/>
    ...

また、良い習慣として、ドキュメントタイプも指定します。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    ...

<!DOCTYPE html>正当なHTML5Doctypeです。


また、Pranav Kapoorが指摘したように、PHPファイルの文字セットも指定する必要があります。

header("Content-Type: text/plain; charset=UTF-8");

文字セットを次のように指定したことがわかりますISO-8859-1。私はいつも一緒に仕事をしていUTF-8ますあなたはここでそれについてもっと読むことができます:UTF-8とISO-8859-1の違いは何ですか?

ただしcontentType、ajax呼び出しからを削除してください

于 2012-11-08T10:29:04.303 に答える