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

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

推薦する

トップに戻るボタンを実装するJavaScript

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...

HTML テーブル マークアップ チュートリアル (39): ヘッダーの明るい境界線の色属性 BORDERCOLORLIGHT

テーブル ヘッダーでは、明るい境界線の色を個別に定義できます。基本的な構文<TH ボーダーカラ...

JavaScript クラス配列の詳細な理解

js 配列はどこでも使用されているため、おそらく誰もがよく知っているでしょうが、配列クラス (疑似配...

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

VUE+CanvasはシンプルなGobangゲームの全プロセスを実現します

序文レイアウトの点では、Gobang はランダムな動きを目的とするゲームよりも実装がはるかに簡単で、...

Vue カプセル化 TabBar コンポーネントの完全なステップ記録

目次実装のアイデア:ステップ 1: TabBar と TabBarItem のコンポーネント カプセ...

Bツリー挿入プロセスの概要

前回の記事 https://www.jb51.net/article/154153.htm では、B...

Web デザインのヒント: ページ レイアウトの簡単なルール

繰り返し: サイト全体で特定のページ デザイン スタイルを繰り返します。繰り返し要素としては、特定の...

マークアップ言語 - フレーズ要素

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Linux ファイル管理コマンド例の分析 [権限、作成、削除、コピー、移動、検索など]

この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...

ボタンと入力タイプの違いと注意点

<button> タグ<br />定義と使用法<button> ...

Ubuntuで余分なカーネルを削除する方法

ステップ1: 現在のカーネルを表示する 読み取る $ uname -a Linux rew 4.15...

Vscode が Ubuntu にリモート接続する際のエラー問題の解決方法

1. 事件の背景:仕事上、Ubuntu への vscode リモート接続を使用する必要があります。 ...

uni-appがNFC読み取り機能を実装

この記事では、参考までに、NFC読み取り機能を実装するためのuni-appの具体的なコードを紹介しま...