PHP アプリケーション Ajax によって返される文字化けしたコードの解決策: 1. 受信したデータを GBK に変換し直します。コードは [iconv(utf-8,'gb2312'$_POST[Data])]; 2 です。 JSON を使用して送信します。コードは [$json_string=JSON($data)] です。
PHP アプリケーション Ajax によって返される文字化けしたコードの解決策:
1. フロントからデータを送信する-end JS to バックグラウンド状況で
#AJAX データが送信されるとき、基礎となる xmlHttprequest を直接使用する場合でも、データ送信に jQuery の ajax を使用する場合でも、ajax は utf-8 を使用してエンコードして送信します。 ページが UTF-8 であれば、問題ありません! 渡された中国語データは文字化けしません! GB2312 であれば、問題が発生します! GBK は UTF- で変換されます。このときバックグラウンドで直接受信したものは文字化けします!解決策: バックグラウンド言語が PHP
iconv('utf-8','gb2312',$_POST['Data']);
の場合原理は非常に単純です: 背景は直接です 受信は utf-8 で、ページはすべて GBK です、その後、受信したデータを GBK に変換するだけです!
現時点では、次のことを行うだけです。データベース操作! データベースに保存してください。通常の中国語の文字である必要があります!2. バックグラウンド ページがデータベース内のデータに中国語の文字が含まれていることを読み取り、それを JS フロントエンドに返すとき
PHP ページはデータベースから通常の中国語の文字を読み取り、AJAX 経由で送り返したいと考えています~それが返された場合、データはフォームで直接送り返されます。処理を行わない文字列です! これは問題ありません! フロント ページに中国語が表示されている場合はすべて正常です!しかし、通常はバックグラウンド データをパッケージ化する必要があります! そうしないと、フロント デスクが受信したデータが処理が難しい!PHP の場合!現在、送信には JSON を使用するのが一般的です!この方法では、フロントエンド JS に渡されるデータの解凍と操作が非常に簡単になります!PHP バックグラウンドで json 変換操作を実行すると、問題が発生します! json を変換すると、データベースから読み取った中国語が NULL になるなどの異常な状況が発生します。これは、JSON はエスケープのみであるためです。エンコーディング!エスケープするエンコーディングは気にしません!とにかく、JSON 中国語に変換すると文字化けが発生します~~解決策は次のとおりです:
function arrayRecursive(&$array, $function, $apply_to_keys_also = false) { static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; } function JSON($array) { arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); } $json_string=JSON($data); //$obj = json_decode($json_string); print_r($json_string);これらの処理が完了すると、バックグラウンドの PHP によってデータベースから読み取られた漢字が正常に JSON 形式に変換され、中国語になっていることがわかります。すべてが正常であることがわかります。もちろん、フロント デスクが受信したデータは現時点では JSON 形式であり、漢字も正常です!
関連学習の推奨事項:
以上がPHP アプリケーションの Ajax が文字化けを返した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。