2011-04-23 30 views
0

私は自分のサーバーコードに送信しようとしている文字列を持っています。私はデータにこれらの文字をたくさん得ています - 。データをシリアル化する必要がありますか?私はutf-8エンコーディングを使用していますが、それは修正されません。私はJQuery側のデータに何かが起こっていると思います。これをどうやって解決するのですか?文字列内のASCII文字

私のJQの外観は次のとおりです。ここで

var id = $('#id').val(); 
var dataString = 'id='+ id; 
$.ajax({ 
    type: "POST", 
    url: "http...", 
    data: dataString, 
    dataType: 'json', 
    success: function(data) { 
    ... 

サンプル文字列です: `%は32D CA?

この文字列、その後はISO-8859-1


EDITとUTF-8とÊ32d?�32d?次のようになります。 私は、文字列が%caで始まる場合、このエンコーディングの問題のみ起こることに気づきました。他のすべては期待どおりに動作するようです。

+0

文字列の例を挙げることはできますか?それは、ユニコード文字か、あなたがそれをどのようなフォントで表示しても表示できない文字である可能性があります。 – MacAnthony

+1

私は私の答えを削除しました。問題は、あなたのデータをエンコードすることです - ちょうどPHPのヘッダーを変更するだけでは不十分です。あなたは間違いなくここに例を示してください、そしておそらくいくつかのコード。これは、すでにUTF8でエンコードされているデータで 'utf8_encode()'を呼び出すときのように、二重エンコードする場合にも発生します。 –

+0

OK、上に投稿します – jim

答えて

0

HTTPプロトコルの%xxはエンコードされた文字で、サーバーがあなたのためにデコードする必要はない場合でもデコードします。送信する前に文字列をエンコードするか、すべての%を%25(エンコードされた%)に置き換えてください。 \と同じ概念です。文字列に\ nがある場合、nはたとえ単語の一部であっても、エンジンはそれを改行と解釈します。

希望に役立ちます。