ホームページ >データベース >mysql チュートリアル >mysqlデータベースの中国語文字化け問題の詳細説明
この記事は主にmysqlデータベースの中国語文字化け問題の詳細な説明に関する関連情報を紹介します。必要な友人は参考にしてください。
insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!')
; 出现乱码时,可以使用语句 show variables like 'character%'
の形の漢字を含むデータを MySQL データベースに挿入すると、現在のデータベースの関連するエンコーディング セットが表示されます。
上の図からわかるように、MySQL は 6 つの場所 (クライアント、接続、データベース、結果、サーバー、システム) で文字セットを使用します。その中には、サーバーに関連するもの: データベース、サーバー、システム (変更できません。utf-8 です)、クライアントに関連するもの: 接続、クライアント、結果。
client |
は、クライアントによって使用される文字セットです。 |
connection |
は、データベースへの接続に使用される文字セットのタイプをプログラムが指定しない場合、サーバーに従います。側のデフォルトの文字セット設定。 |
database |
は、データベースサーバーのライブラリで使用される文字セット設定です。データベースの構築時に指定されていない場合は、サーバーのインストール時に指定された文字セット設定が使用されます。利用される。 |
results |
は、データベースがクライアントに返されるときに使用される文字セットです。指定しない場合は、サーバーのデフォルトの文字セットが使用されます。 |
server |
は、サーバーのインストール時に指定されたデフォルトの文字セット設定です。 |
system |
は、データベース システムで使用される文字セット設定です。 |
上記の情報を理解した後、現在の CMD クライアント入力が GBK エンコードを使用しており、そのエンコード形式が GBK であるため、問題は現在の CMD クライアント ウィンドウにあります。データベースは UTF-8 であり、エンコーディングが一致しないと文字化けが発生します。現在の CMD クライアントのエンコード形式は変更できないため、接続、クライアント、および結果のエンコード セットは、現在挿入されているデータが GBK エンコードを使用していることをサーバーに通知するためにのみ変更できます。ただし、サーバーのデータベースは UTF-8 エンコードを使用しています。 GBK でエンコードされたデータをサーバー側に通知し、自動的に UTF-8 に変換して保存します。次のステートメントを使用すると、クライアントに関連するエンコーディング セットを簡単に設定できます:
set names gbk; 設定が完了すると、クライアントによって挿入または表示されるデータの文字化けの問題は解決できます。 , しかし、すぐにこの形式の設定は現在のウィンドウでのみ有効であることがわかり、ウィンドウを閉じた後にCMDクライアントを再度開くと文字化けが表示されます。 ? MySQL インストール ディレクトリに my.ini 設定ファイルがあります。この設定ファイルを変更すると、文字化けの問題を完全に解決できます。この構成ファイルでは、[mysql] はクライアント構成に関連し、[mysqld] はサーバー構成に関連します。デフォルトの設定は次のとおりです:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
現時点では、デフォルトのエンコーディングdefault-character-set=utf8をdefault-character-set=gbkに変更し、MySQLサービスを再起動するだけです。
MySQLデータベースへのPHP接続の中国語文字化けの解決策_PHPチュートリアル
mysqlデータベースの中国語文字化けを解決する方法、修正設定ファイル内の文字エンコーディングは効果がありません
以上がmysqlデータベースの中国語文字化け問題の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。