ホームページ >バックエンド開発 >PHPチュートリアル >take me home Country Road 文字化けに対する PHP+MYSQL ソリューション
JSPの文字化け問題は解決したはずですが、MYSQLの文字化け問題は私も含めてまだ解決していない人もいるそうなので、今回は完全に解決できることを願いながらさらに情報を探してみましたMYSQLデータベースの文字化け問題。
最初の方法、非常に洞察力のある要約:
仮想ホストは頻繁に変更され、各サービスプロバイダーの MYSQL バージョンが異なります。データをインポートすると、文字化けが発生して正常に表示できないなどの問題が常に発生します。多くの情報を確認した結果、次のように結論付けました。 いくつかのヒント:
WINDOWS でのインポートは次のようになります
MYSQL コマンドを使用します
DOS コマンドで mysql の bin ディレクトリを入力し、mysql -uroot -p パスワード データベース名 < を入力します;復元するデータベース。たとえば、D ディスクを復元します。test.sql という名前のデータベースをローカルの test2 データベースに復元すると、次のようになります。 mysql -uroot -p パスワード 外部ホストが使用する Mysql GBK に関係なく、test2 は 4.x シリーズです。データをインポートした後、新しいホストの MySQL バージョンがバージョン 5.0 であるとは予想していませんでした。 Phpで読むと疑問符だらけで文字化けしたことがあるのを思い出しました 原因は間違いなくMysqlのバージョンの違いです。
情報を確認する必要があり、解決策を見つけました。それは、UTF8 データベースの文字化けを除去するために mysql_connect の後に SET NAMES UTF8 を追加することです。コードは次のとおりです。
$mysql_mylink = mysql_connect ($ mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
データベースの文字セットは utf-8 です
これを接続ステートメントに使用します
mysql_query("SET NAMES 'UTF8'") ;
mysql_query(" SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
別の方法は、一般に有効な MYSQL 文字セットを変更することです。 MYSQ4 と MYSQL5 の 2 つのバージョン
2 番目の方法: 非常にわかりやすい説明なので、試してみてください
mysql 文字化けコード処理の概要:
(1) Java では漢字は正常に処理されますが、cmd クライアントでは文字化けが表示されます。
(2) フィールドの長さの設定 十分な長さですが、中国語の文字を挿入すると、「com.mysql.jdbc.MysqlDataTruncation: データの切り捨て: データが列に対して長すぎます。」というメッセージが表示されます。エラーは文字セットの問題です。コードの文字化けの問題は最終的には文字セットの問題であるため、文字から始めてください。セット設定の考慮事項は、サーバー、クライアント、データベース、接続、結果の側面にすぎません
----------- -----------解決方法----------------------
(1) my.ini (MySQL Server インスタンス設定ファイル) を変更する