ホームページ >バックエンド開発 >PHPチュートリアル >php、ajax、mysql、latin1 エンコーディングに関連する問題
php、ajax、mysql、latin1 エンコーディングの問題
Mysql のデフォルトは latin1 エンコーディングです。ajax でデータを読み取ると、サーバー側の ajax.php でエンコーディングに関係する 2 つの場所が発生します。 > a .header( 'Content-type: text/xml;charset=utf-8 ');
b. クエリ時に、mysql_query( "set names 'UTF8 ' "); ajax.php 自体も utf-8 でエンコードされています。
レコードはクエリできますが、XML ソース コードを表示すると次のようになります:
²èµê× xD3; Õý½ÖÅɳöËù
たくさん試しましたエンコーディングの変換に失敗しました。助けてください。 ! ! ! !
-----解決策---------
xml にも utf8 エンコーディングを追加してみてください
------解決策---------
Mysql のデフォルトの latin1 エンコーディングが utf-8 に変更されました
クライアントサイドのHTMLはutf-8を使用しています 送信時にエビのようになっていても、クライアント上で正常に表示できればOKです。
------解決策----------------------
マルチバイト文字には LATIN1 を使用しないでください。 UTF8またはGBKの使用をお勧めします
------解決策-----
最高の統一エンコード形式~~
------解決策---------
iconv() を使用して次のことを行うことはできませんか?エンコーディングを統一しますか?
------解決策------
b. クエリを実行するときに、mysql_query( "set names 'UTF8 ' ");
これは mysql_query( "set names 'UTF-8 ' "); である必要があります。
ajax.php は XML を出力し、iconv() を使用してそれをデコードします。
$xml = "出力する xml データ";
echo iconv( "latin1 ", "utf-8 ",$xml);