MySQL データベースにおける中国語文字化け問題の詳細な説明

MySQL データベースにおける中国語文字化け問題の詳細な説明

insert into employee values(null,'張三','female','1995-10-08','2015-11-12','Sales',2000,'是個好員工!')挿入して文字化けが発生した場合、 show variables like 'character%' ; ステートメントを使用して、現在のデータベースの関連するエンコード セットを表示できます。

上の図から、MySQL はクライアント、接続、データベース、結果、サーバー、システムの 6 つの場所で文字セットを使用していることがわかります。そのうち、サーバー側に関連するものは、データベース、サーバー、システム(変更できません。utf-8 です)であり、クライアント側に関連するものは、接続、クライアント、結果です。

クライアント
クライアントが使用する文字セット。
繋がり
データベースに接続するための文字セット タイプを設定します。プログラムがデータベースへの接続に使用する文字セット タイプを指定しない場合は、サーバーのデフォルトの文字セットが使用されます。
データベース
データベース サーバーのライブラリで使用される文字セット。ライブラリの作成時に指定されていない場合は、サーバーのインストール時に指定された文字セットが使用されます。
結果
クライアントにデータを返すときにデータベースが使用する文字セット。指定しない場合は、サーバーのデフォルトの文字セットが使用されます。
サーバ
サーバーのインストール時に指定されるデフォルトの文字セット。
システム
データベース システムで使用される文字セット。

上記の情報を理解した後、文字化けの原因を分析してみましょう。問題は現在の CMD クライアント ウィンドウにあります。現在の CMD クライアント入力は GBK エンコードを使用し、データベース エンコード形式は UTF-8 です。エンコードが一致しないため、文字化けが発生します。 CMD クライアントの現在のエンコード形式は変更できないため、接続、クライアント、結果のエンコード セットを変更して、現在挿入されているデータが GBK エンコードを使用していることをサーバーに通知するしかありません。サーバーのデータベースは UTF-8 エンコードを使用していますが、サーバーに通知された GBK エンコードされたデータを認識し、自動的に UTF-8 に変換して保存できます。次のステートメントを使用すると、クライアントに関連するエンコーディング セットをすばやく設定できます。

  • 名前gbkを設定します。

設定が完了すると、クライアントに挿入または表示されるデータの文字化けの問題が解決されますが、この形式の設定は現在のウィンドウでのみ有効であることがすぐにわかります。ウィンドウを閉じて CMD クライアントを再度開くと、文字化けの問題が再び発生します。では、一度で設定を完了するにはどうすればよいでしょうか。 MySQL インストール ディレクトリには、my.ini 構成ファイルがあります。この構成ファイルを変更することで、文字化けの問題を完全に解決できます。この設定ファイルでは、[mysql] はクライアント設定に関連し、[mysqld] はサーバー設定に関連します。デフォルトの設定は次のとおりです。

  • [mysql]
  • デフォルト文字セット=utf8
  • [mysqld]
  • 文字セットサーバー=utf8

この時点では、デフォルトのエンコーディング default-character-set=utf8 を default-character-set=gbk に変更し、MySQL サービスを再起動するだけです。

要約する

上記は、編集者が紹介したMySQLデータベースの中国語文字化け問題です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Java を Oracle データベースに接続するときに中国語の文字化けが発生する問題の解決方法
  • Mac Mysql データベースの中国語文字化け問題の解決方法
  • Springboot とデータベースが中国語で文字化けしたデータを返す

<<:  VMWare で Ubuntu を再起動した後、インターネットにアクセスできなくなる問題の解決方法

>>:  ミニプログラムは、カスタムのマルチレベル単一選択と複数選択を実装します

推薦する

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

MySQLの結合の基本原理についての簡単な説明

目次結合アルゴリズム駆動テーブルと非駆動テーブルの違い1. 単純なネストループ結合、単純なネスト、イ...

HTML テーブルタグチュートリアル (17): テーブルタイトルの垂直配置属性 VALIGN

表のキャプションは表の上または下に配置でき、プロパティで調整できます。デフォルトのテーブル タイトル...

nginxディレクトリパスをリダイレクトする方法

ドメイン名に続くパスがデフォルトの Web ディレクトリではなく、ローカル ディスク上の他のディレク...

CSS 疑似クラス: 空っぽだと光る (サンプルコード)

最近私の記事を読んだ人なら誰でも、私が現在WeChatミニプログラムプロジェクトを担当しており、その...

PHP環境構築におけるDockerの柔軟な実装

Docker を使用して、柔軟なオンライン PHP 環境を構築します。場合によっては、他の人がすでに...

W3C 検証に合格するにはどうすればいいですか?

W3C では、さまざまなタグの規定を設定するだけでなく、Web ページの作成者が実際に W3C 規...

JavaScript による Web ページ カルーセルの超詳細な実装

目次HTML ページの作成js部分の機能を実装する1. 左ボタンと右ボタン2. 小さな円を動的に生成...

MySQL 5.6 圧縮パッケージのインストール方法

MySQL には、msi インストールと zip 解凍の 2 つのインストール方法があります。 zi...

Mysql のいくつかの複雑な SQL ステートメント (重複行のクエリと削除)

1. 重複行を見つける blog_user_relation a から * を選択 WHERE (...

MySQL 8.0.12 のインストールと設定方法のグラフィックチュートリアル (Windows 版)

1. はじめにプロジェクトではMySQLを使用しています。インターネット上の例を参考にインストール...

操作例 MySQL ショートリンク

MySQL ショートリンクの設定方法1. mysql 接続番号ステートメントコマンドを確認します。 ...

nginx + fastcgi を使用して画像認識サーバーを実装する

背景ディープラーニング モデルの推論には、特定のデバイスが使用されます。マシンは、モデルの読み込み、...

超シンプルな QPS 統計手法 (推奨)

過去 N 秒間の QPS 値の統計 (1 秒あたりの選択、挿入などを含む) mysql> se...

yumコマンドの使い方

1. yumの紹介Yum (フルネームは Yellow dogUpdater、Modified) は...