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 を再起動した後、インターネットにアクセスできなくなる問題の解決方法

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

推薦する

Linuxターミナルでファイルを作成する2つの一般的な方法を簡単に理解する

mkdir コマンドを使用して新しいディレクトリを作成できることは誰もが知っていますが、多くの場合、...

HTMLの基礎を詳しく解説(第2部)

1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...

Vue での親子コンポーネント通信と、sync を使用して親子コンポーネント データを同期する

目次序文子コンポーネントは親コンポーネントにデータを渡す1. 親コンポーネントから子コンポーネントに...

HTML チュートリアル、簡単に学べる HTML 言語 (2)

*******************HTML言語入門(パート2)*****************...

MySQL ストアド プロシージャにおけるループ ステートメント (WHILE、REPEAT、LOOP) の使用法の分析

この記事では、例を使用して、MySQL ストアド プロシージャでのループ ステートメント (WHIL...

HTMLシールドの右クリックメニューと左クリック入力機能の例

右クリックメニューを無効にする <body oncontextmenu=self.event....

Linux でバックグラウンドで実行中のプログラムを表示して終了する方法

1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...

PCとモバイルの適応の問題に対する迅速な解決策

Web ページを作成する場合、通常、コンピューターの画面サイズと携帯電話の画面サイズの違いなどの問題...

Vue で棒グラフを使用し、自分で設定を変更する方法

1. HTMLファイルでechartをインポートする <!-- echarts をインポート ...

MySQL Limitクエリのパフォーマンスを向上させる方法

MySQL データベース操作では、一部のクエリを実行するときにデータベース エンジンが完全なテーブル...

js を使ってシンプルな虫眼鏡効果を実現

この記事の例では、参考までに簡単な虫眼鏡効果を実現するためのjsの具体的なコードを共有しています。具...

JavaScript の継承についてどれくらい知っていますか?

目次序文コンストラクタ、プロトタイプオブジェクト、インスタンスオブジェクトの関係プロトタイプチェーン...

CentOS7にJDK8をrpmモードでインストールする

CentOS 7が正常にインストールされると、OpenJDKのJREがデフォルトでインストールされて...

vue3ソースコード解析の簡単な実装方法

目次序文🍹準備🍲vue3 の使い方🍖 実装要約する序文最近、私の最初の公式 vue3 + ts プロ...

MySQLのロングトランザクションに関する深い理解

序文:この記事では主にMySQLのロングトランザクションに関する内容を紹介します。例えば、トランザク...