ホームページ >データベース >mysql チュートリアル >MySQL で UTF-8 エンコーディングを設定する方法

MySQL で UTF-8 エンコーディングを設定する方法

PHPz
PHPzオリジナル
2023-04-21 11:24:163583ブラウズ

MySQL は、さまざまな Web サイトやアプリケーションで広く使用されているオープンソースのリレーショナル データベース管理システムです。エンコーディングの問題は、データベースの正確性とデータの整合性にとって重要です。この記事では、MySQL で UTF-8 エンコードを設定する方法を紹介します。

1. UTF-8 エンコードについて理解する

1.1 UTF-8 の概要

UTF-8 は、Unicode 標準のすべての文字を表すことができる Unicode 文字エンコード形式です。そのため、国際化および多言語サポートの Web サイトやアプリケーションで広く使用されています。他の文字エンコード形式と比較して、UTF-8 はよりコンパクトな保存スペースを使用し、さまざまなデータの保存や送信の機会に適しています。

1.2 UTF-8 エンコーディングの原理

UTF-8 エンコーディングは可変長エンコーディング方式を採用しており、一般に 1 ~ 4 バイトで文字を表現し、その最初の文字がセクションとして使用されます。文字によって使用される合計バイト数を表し、次のバイトは特定の文字コンテンツを格納するために使用されます。具体的なエンコード規則は次のとおりです。

Range

#0000 0000-0000 007F0xxxxxxxx##0000 0080-0000 07FF 110xxxxx 10xxxxxx##0000 0800-0000 FFFF1110xxxx 10xxxxxx 10xxxxxx このうち、x はバイナリビットを表し、UTF-8 のエンコード長は異なります。文字が占めるバイト数に応じて、最大で 4 バイトの文字、つまり Unicode の「上位サロゲート セグメント」と「下位サロゲート セグメント」を表すことができます。 2. MySQL の文字エンコーディングの設定2.1 my.cnf 設定ファイルの変更Linux 環境の場合、MySQL 設定ファイルは /etc/my.cnf です。次の設定項目を追加して、データベースの文字エンコーディングを設定できます: [mysqld]character-set-server=utf8collat​​ion-server=utf8_general_ci
#0001 0000-0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

このうち、character-set-server は、MySQL がデフォルトでテーブルを作成するために使用する文字セットを設定するために使用され、collat​​ion-server は、MySQL がデフォルトで使用する照合ルールを設定します。ここでは、データベース内のさまざまな文字の正確性と互換性を確保するために、すべて UTF-8 エンコーディングに設定されています。変更が完了したら、MySQL サービスを再起動して my.cnf 構成ファイルをリロードします。

$ service mysql restart

2.2 データベースを直接変更する

既存のデータベースを変更する データベース内のテーブルまたはフィールドの文字エンコーディングを変更するには、次の SQL コマンドを使用できます:

ALTER DATABASE データベース名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

その中に, utf8mb4 は、すべての Unicode 文字エンコーディングを表すことができる、MySQL.8 に保存されている UTF エンコーディング方式です。同時に、MySQL のバージョンによってサポートされる文字エンコード方式が異なる場合があるため、文字エンコードを変更する場合は対応するドキュメントを参照する必要があることに注意してください。

2.3 接続エンコーディングを変更する

PHP などのプログラミング言語では、MySQL に接続するときに、データの正確性を確保するために文字エンコーディングを設定する必要もあります。 MySQLi 接続では、次のコードを使用して設定できます:

$mysqli = new mysqli("localhost", "username", "password", "dbname");

mysqli_set_charset($ mysqli," utf8");

PDO 接続では、次のコードを使用できます:

$dsn = "mysql:host=localhost;dbname=dbname;charset=utf8";

$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);

$pdo = 新しい PDO($dsn, "ユーザー名", "パスワード", $options);

3. 概要

Web サイトやアプリケーションで広く使用されているリレーショナル データベースとして、MySQL は正しい文字エンコーディングを設定することが重要です。この記事の導入により、UTF-8 エンコーディングの原理と MySQL で文字エンコーディングを設定する方法を理解しました。実際の開発では、データの正確性と整合性を確保するために、さまざまなニーズやシナリオに応じて MySQL の文字エンコーディングを適切に設定する必要があります。

以上がMySQL で UTF-8 エンコーディングを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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