Maison > Article > base de données > Comment définir le jeu de caractères dans MySQL
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
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 |
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.
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.
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.
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!