ホームページ >データベース >mysql チュートリアル >mysqlの文字化け問題を解決する方法
mysql の文字化けの解決策: まず、server\MySQL フォルダーを開き、次に my.ini ファイルを開き、最後にコード「character_set_server=gbk」を追加します。
推奨: 「mysql ビデオ チュートリアル 」
Java ウェブサイト MySQL データベース個別の文字化け問題
文字化けの問題は非常に厄介で、特に微量の文字化けは非常に厄介です。ここでは、個人開発中に遭遇したコード文字化けの問題について共有したいと思います。
方法・手順
文字化けが発生する場所、フロントを確認してください。
ここで、編集者は Firefox ブラウザの Firebug ツールを使用してフロントエンド JSP ページをチェックし、投稿が確かに utf8 データであることを発見しました。したがって、フォアグラウンドでデータを送信する際に文字化けが発生することはありません。
文字化けが発生する場所、つまり背景を確認してください。
私の同僚はフロントエンドデータの受信にStruts formbeanを使用しているため、編集者はそれについてあまり知りません。そこで私は、文字化けしたコードを生成するデータ送信プロセスを見つけて、それぞれのメソッドを確認するという愚かな方法を使用しました。出力を追加し、バックグラウンドで出力データを表示します。
結果として、これらのデータも正常です。
文字化けが発生する場所 - MySQL データベースを確認してください。
フロントエンドとバックエンドを除外すると、データベースのみが残ります。次に、問題はデータベースにあります。
編集者はまず文字化けした漢字をデータベースに直接記録し、保存できることを発見しました。データベース テーブルのテキスト エンコーディングの問題は解決されました。
その後、編集者がツール ソフトウェアでクエリを実行しました (ステートメント: show variables like '%char%';)。結果は次のようになります。問題はすぐに判明しました: gb2312 の漢字は完全ではないため、一部の漢字はエンコードされていません。このとき、これらの漢字は強制的に「?」に変換されます。この時点で、この漢字のデータは失われ、復元することはできません。
理由の詳細な説明:
実際には、MySQL データベースに出入りするデータにはいくつかの変換手順があります。
入力時:character_set_clientからcharacter_set_connection、そしてcharacter_set_serverへ移行し、データベースに保存されます。
取り出し時:データベースを取り出し、character_set_server~character_set_resultに変換します。
データベースに出入りするデータは、character_set_server によって変換される必要があることを理解する必要があります。したがって、それがフロントデスクの正しい漢字であっても、データベース内の正しい漢字であっても、そうでない限り、 gb2312 では疑問符に変換されます。
解決策:
これに限りの方法として、エディターがserver\MySQL フォルダー内の my.ini ファイルを直接変更しました。
変更プロセスは次のとおりです。[mysqld] を見つけて、数行下を検索して「default_character_set=utf8」を見つけ、この行の下に「character_set_server=gbk」という行を追加します。
もちろん、gbk を使う必要はありませんが、編集者は念のため国家標準拡張子、つまり gb2312 の拡張子 gbk を使用しました。
以上がmysqlの文字化け問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。