7

jquery$.getJSONを使用して都市のリストを取得しています。

すべて正常に動作しますが、私はエストニア出身で、õ、üなどの文字を使用しています。ä、ö。

このような文字をコールバック関数に渡すと、空の文字列が取得され続けます。私はbase64encode(server-side)-decode(jquery base64 plugin)文字列を試しました(phpでページを圧縮できる限り、それは良い考えだと思ったので、帯域幅について心配する必要はありません)、しかし、このようにして、ランダムな中国語の記号が表示されます。

この問題の最善の回避策は何でしょうか。

ありがとうございました。

4

4 に答える 4

4

utf8_encode()出力データが必要です。クライアント側でエンコードを UTF-8 に設定する必要はありません。これは既にデフォルトになっているためです。

<?php
    if( isset( $_GET['json'] ) ) {

        die( json_encode( array( 'text' => utf8_encode( 'õ, ü. ä, ö' ) ) ) );
    }

    include_jquery(); # this outputs jquery include
>?

<script>

    $.getJSON( 'this_file.php', { 'json': 1 }, function( data ) {
        console.log( 'data', data );
    });

</script>
于 2010-03-16T12:12:05.090 に答える
2

一貫した文字エンコーディングを維持する必要があります。必要なエストニア文字は utf-8 であるため、$.ajax明示的に (contentType を介して) 文字エンコーディングを使用および設定する必要があります。

結果のajaxを取得して処理できます。

getJSON を呼び出す前に ajaxSetup を使用してコンテンツ タイプを設定することもできます。

http://api.jquery.com/jQuery.ajaxSetup/

これにより、 getJSON を使用できるようになります

また、同じ主題に関する関連する SO 投稿があります: How to set encoding in .getJSON JQuery

于 2010-03-16T12:11:04.917 に答える
0

PHPページと出力エンコーディングとしてUTF-8を使用してください

于 2010-03-16T12:09:55.750 に答える
0

これはエンコーディング/文字セットの問題のようです: 本当に使用していますか:

  • アプリケーションのどこでも同じ文字セットですか?
    • データベース
    • ソースファイル
    • ブラウザに送信される HTTP ヘッダー
  • それらの文字をサポートする文字セットは?
    • つまり: UTF-8 を使用していますか?
    • これは、Web アプリケーションで一般的に使用される Unicode 文字セットであり、考えられる事実上すべての文字をサポートします。
于 2010-03-16T12:10:14.043 に答える