Maison  >  Article  >  base de données  >  Comment définir le jeu de caractères dans MySQL

Comment définir le jeu de caractères dans MySQL

PHPz
PHPzavant
2023-05-27 13:38:248512parcourir

1. Le concept de jeu de caractères

Le jeu de caractères standardise la relation de mappage entre les codes et les caractères, et spécifie la méthode de codage des caractères informatiques. Les paramètres des jeux de caractères dans différents systèmes de bases de données peuvent être différents, et différents jeux de caractères présentent des caractéristiques et des avantages uniques. Par rapport à Latin1/Latin7, GB2312/GBK/GB18030 présente de plus grands avantages dans le traitement des caractères chinois.

Dans MySQL, le jeu de caractères fait référence à la façon dont les données de caractères sont codées, y compris les bases de données, les tables et les colonnes. En termes simples, un jeu de caractères fait référence à la manière utilisée pour stocker et traiter les caractères et les chaînes.

Les jeux de caractères pris en charge dans MySQL incluent principalement les suivants : ASCII, GBK, GB2312, UTF-8, UTF-16 et ISO-8859, etc. Parmi eux, UTF-8 est le jeu de caractères le plus couramment utilisé dans MySQL car il prend en charge plusieurs langues, un format d'encodage flexible, un gain de place et d'autres avantages.

2. Comment définir le jeu de caractères MySQL

  1. Interroger le jeu de caractères pris en charge par MySQL

Dans la base de données MySQL, vous pouvez interroger le jeu de caractères pris en charge par la base de données via des commandes.

SHOW CHARACTER SET;

Cette commande peut lister les différents jeux de caractères disponibles pour MySQL, tels que :

Charset Description Classement par défaut Maxlen
big5 Big5 Traditionnel Chinese big5_chinese_ci 2
dec8 DEC Europe de l'Ouest dec8_swedish_ci 1
cp850 DOS Europe de l'Ouest cp850_general_ci 1
hp8 HP Europe de l'Ouest hp8_english_ci 1
koi8r KOI8-R Relcom Russe koi8r_general_ci 1
latin1 iso-8859-1 Europe de l'Ouest latin1_swedish_ci 1
latin2 iso-8859-2 Europe centrale latin2_general_ci 1
swe7 7bit suédois swe7_swedish_ci 1
ascii US ASC II ascii_gener al_ci 1
ujis EUC-JP Japonais ujis_japanese_ci 3
sjis Shift-JIS Japonais sjis_japanese_ci 2
hebrew iso- 8859-8 Hébreu hebrew_general_ci 1
tis620 TIS620 Thai tis620_thai_ci 1
euckr EUC-KR coréen euckr_korean_ci 2
koi8u KOI8-U ukrainien koi8u_general_ci 1
gb2312 GB2312 chinois simplifié gb2312_chinese_ci 2
grec iso-8859-7 grec greek_general_ci 1
cp1250 Windows Europe centrale cp1250_general_ci 1
gbk GBK Chinois simplifié gbk_chinese_ci 2
latin5 iso-8859-9 Turc latin5_turkish_ci 1
armcii8 ARMSCII-8 arménien arm scii8_general_ci 1
utf8 UTF-8 Unicode utf8_general_ci 3
ucs2 UCS-2 Unicode ucs2_general_ci 2
cp866 DOS russe cp866_general_ci 1
keybcs2 DOS Kamenicky tchèque- slovaque keybcs2_general_ci 1
macce Mac Europe centrale macce_general_ci 1
macroman Mac Europe de l'Ouest macro man_general_ci 1
cp852 DOS Europe centrale cp852_general_ci 1
latin7 iso-8859-13 Baltique latin7_general_ci 1
utf8mb4 UTF-8 Unicode utf8mb4_general_ci 4
cp1251 Windows Cyrillique cp1251_general_ci 1
utf16 UTF-16 Unicode utf16_general_ci 4
utf16le UTF-1 6LE Unicode utf16le_general_ci 4
cp1256 Windows Arabe cp1256_general_ci 1
cp1257 Windows Baltique cp1257_general_ci 1
utf32 UTF-32 Unicode utf32_general_ci 4
binaire Pseudo charset binaire binaire 1
geostd8 GEOSTD8 géorgien geostd8_general_ci 1
cp932 SJIS pour Windows japonais cp932_japanese_ ci 2
eucjpms UJIS pour Windows japonais eucjpms_japanese_ci 3
  1. Définir le jeu de caractères de la base de données

Lorsque nous créons une nouvelle base de données MySQL, nous pouvons définir le jeu de caractères par défaut de la base de données afin que les jeux de caractères de toutes les tables de la base de données utilisent ce jeu de caractères. Les étapes spécifiques sont les suivantes :

2.1 Vérifiez d'abord les jeux de caractères pris en charge par MySQL

mysql> SHOW CHARACTER SET

2.2 Lors de la création d'une nouvelle base de données, ajoutez un paramètre de jeu de caractères

CREATE DATABASE new_db CHARACTER SET utf8;

ou

La phrase suivante est réécrite : "Créez une nouvelle base de données appelée 'new_db' avec un jeu de caractères par défaut de utf8."

où utf8 est l'un des jeux de caractères couramment utilisés.

  1. Définissez le jeu de caractères de la table MySQL

Afin de garantir que la table peut stocker et afficher correctement les données, nous devons définir le codage des caractères de la table. Dans MySQL, le jeu de caractères d'une table peut être défini lors de la création de la table. Les tables déjà créées peuvent être modifiées à l'aide de la commande ALTER.

3.1 Définir le jeu de caractères lors de la création de la table

CREATE TABLE new_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL DEFAULT '',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Le moteur de stockage utilisé pour définir la table est ENGINE=InnoDB, et le jeu de caractères par défaut utilisé pour définir la table est CHARSET=utf8.

3.2 Modifier le jeu de caractères de la table

ALTER TABLE old_table CONVERT TO CHARACTER SET utf8;

ou

ALTER TABLE old_table MODIFY COLUMN name VARCHAR(50) CHARACTER SET utf8;

Parmi elles, la commande CONVERT TO est utilisée pour modifier le tableau. Jeu de caractères par défaut, la commande MODIFY COLUMN permet de modifier le jeu de caractères d'une colonne du tableau.

  1. Définir le jeu de caractères de la connexion MySQL

Lors de la connexion au serveur MySQL, vous pouvez également définir le jeu de caractères de l'opération. Le paramètre du jeu de caractères, souvent appelé « jeu de caractères client », fait référence au jeu de caractères utilisé pour les données transmises côté client.

4.1 Afficher le jeu de caractères de la connexion actuelle

mysql> SELECT @@character_set_connection;

4.2 Modifier le jeu de caractères de la connexion

SET Character_set_connection = utf8;

or

mysql --default-character-set =utf8 -u root -p

Parmi eux, la commande SET peut modifier le jeu de caractères par défaut de la connexion, et la commande --default-character-set peut spécifier le jeu de caractères client.

  1. Autres paramètres de jeu de caractères

Dans certains cas, afin de répondre à certaines exigences moins courantes de stockage et de conversion de données, il peut être nécessaire d'activer d'autres paramètres de jeu de caractères de MySQL. Dans ce cas, vous devrez peut-être modifier le fichier de configuration MySQL-my.cnf avec les privilèges d'administrateur. La méthode de modification est la suivante :

5.1 Rechercher le fichier my.cnf

Sous Linux, le fichier my.cnf est généralement stocké dans le répertoire /etc/my.cnf ou /etc/mysql/my.cnf.

Sous Windows, le fichier my.cnf est généralement stocké dans le répertoire d'installation de la base de données MySQL.

5.2 Modifier le fichier my.cnf

Ajoutez l'instruction suivante dans le fichier my.cnf :

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

Parmi eux, la commande Character_set_server est utilisée pour définir le jeu de caractères répertorié, la commande init_connect est utilisée pour définir automatiquement le jeu de caractères lors de la création d'une connexion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer