ホームページ >データベース >mysql チュートリアル >mysql で中国語が使用できない場合はどうすればよいですか?

mysql で中国語が使用できない場合はどうすればよいですか?

PHPz
PHPzオリジナル
2023-04-21 10:12:233829ブラウズ

MySQL は一般的なリレーショナル データベース管理システムであり、多くの開発者にとって開発作業に欠かせないものになっています。しかし、MySQL を使用する場合、多くのユーザーは「中国語が使用できない」という問題に遭遇する可能性があります。

MySQL が中国語を使用できないことは、主に 2 つの側面で現れます。1 つは MySQL コマンド ライン インターフェイスでの中国語の文字化け、もう 1 つは中国語の文字の保存とクエリの問題です。 MySQL データベース内。この記事では、問題のこれら 2 つの側面を詳細に調査し、対応する解決策を提供します。

MySQL コマンド ライン インターフェイスでの中国語の文字化け

MySQL コマンド ライン インターフェイスは MySQL のコア機能であり、開発者はこのインターフェイスでさまざまなコマンドを実行できます。ただし、多くのユーザーは、MySQL コマンド ライン インターフェイスを使用すると、中国語の文字化けに遭遇します。これは主に、MySQL のデフォルトの文字セットが「utf8」ではなく「latin1」であるためです。

以下では、MySQL コマンド ライン インターフェイスでの中国語の文字化け問題を解決する方法について説明します。

方法 1: 「mysql」コマンド ライン ツールを使用するときに「-u」パラメータを追加して、中国語の文字セットをサポートするユーザー名を指定します。

たとえば、次のコマンドを使用して、ユーザー名「root」とパスワード「password」を指定します。

mysql -u root -ppassword

方法 2: 次のコマンドを使用して、現在の MySQL デフォルト文字セットを表示します。 :

mysql> show variables like '%character%';

このコマンドは、現在の文字セット設定を表示します。ここで、3 つのパラメータ「character_set_client」、「character_set_connection」、および「character_set_results」の値はすべて「latin1」です。

コマンドラインインターフェースにおける中国語文字化け問題を解決するには、これら3つのパラメータの値を「utf8」に変更する必要があります。この目的は、次のコマンドによって達成できます:

mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_results=utf8;

方法 3: MySQL 構成ファイル「my.cnf」を変更します。

MySQL 構成ファイルで、次の 3 行のコードを見つけます:

character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci

これらの 3 行のコードのコメントを削除し、以下に示すように値を「utf8」に変更します。 ##

character-set-client-handshake = FALSE 
character-set-server = utf8 
collation-server = utf8_general_ci
MySQL データベースの中国語のストレージとクエリの問題

コマンド ライン インターフェイスの中国語の文字化け問題に加えて、MySQL データベース自体にも中国語のストレージとクエリの問題がある可能性があります。

たとえば、中国語の文字を含むデータを MySQL データベースに挿入すると、次のエラーが発生する可能性があります:

Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1
これは、MySQL のデフォルトの文字セットが「latin1」であるためです。 「utf8」ではなく。中国語でのテーブルの作成とデータの保存をサポートしたい場合は、テーブル構造の文字セットを「utf8」に設定する必要があります。

以下では、MySQL データベースにおける漢字の格納とクエリの問題を解決する方法を説明します。

方法 1: テーブル作成時に文字セットを「utf8」に指定して問題を解決します。

たとえば、次のコマンドを使用して「person」という名前のテーブルを作成し、テーブルの「name」フィールドの文字セットを「utf8」に設定します。

CREATE TABLE person (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
方法 2: MySQL の場合 構成ファイルでデフォルトの文字セットを「utf8」に設定し、すべてのテーブルがデフォルトでこの文字セットを使用するようにします。

MySQL 構成ファイルで、次の 2 行のコードを見つけます:

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
これらの 2 行のコードのコメントを削除し、以下に示すように値を「utf8」に変更します。 ##
character-set-server=utf8
collation-server=utf8_general_ci

既存のテーブルの場合、次のコマンドを使用してテーブル構造の文字セットを変更できます。

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

結論

中国語の文字はコマンド ライン インターフェイスとコマンド ライン インターフェイスの両方に存在します。 MySQL データベースの設定問題。このような問題が発生した場合は、この記事で説明する方法に従って解決してください。文字セットを調整すると、中国語データのクエリと保存が簡単になり、中国語の文字処理で発生するさまざまな問題を回避できるようになります。

以上がmysql で中国語が使用できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。