Maison  >  Article  >  base de données  >  mysql définir un jeu de caractères

mysql définir un jeu de caractères

王林
王林original
2023-05-08 09:36:063188parcourir

MySQL, en tant que puissante base de données open source, est largement utilisé dans la plupart des applications de divers secteurs. La configuration du jeu de caractères est un problème très important lors de l’utilisation de MySQL. Cet article explique comment définir le jeu de caractères MySQL pour aider les développeurs à utiliser correctement la base de données MySQL.

1. Le concept de jeu de caractères

Le jeu de caractères est une spécification sur la relation de mappage entre les codes et les caractères. Il spécifie la méthode de codage des caractères informatiques. Les jeux de caractères peuvent avoir des paramètres différents selon les systèmes de bases de données, et différents jeux de caractères ont des caractéristiques et des avantages différents. Par exemple, lors du traitement des caractères chinois, GB2312/GBK/GB18030 présente des avantages par rapport à Latin1/Latin7.

Dans MySQL, le jeu de caractères fait référence à l'encodage des données de caractères dans 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 la commande, la méthode est la suivante :

SHOW CHARACTER SET;

Cette commande Les différents jeux de caractères disponibles pour MySQL peuvent être répertoriés, par exemple :

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 Russian 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 swedish_ci 1
ascii US ASCII ascii_general_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
koi8 u KOI8-U Ukrainien koi8u_general_ci 1
gb2312 GB2312 Chinois simplifié gb2312_chinese_ci 1
gbk GBK Chinois simplifié gbk_chinese_ci 2
latin5 iso-8859-9 turc latin5_turkish_ci 1
armscii8 ARMSCII-8 arménien armscii8_general_ci 1
utf8 UTF-8 Unicode utf8_general_ci 3
ucs2 UCS-2 Unicode ucs2_general_ci 2
cp866 DOS russe cp8 66_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 macroman_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_gener al_ci 4
cp1251 Windows Cyrillic cp1251_general_ci 1
utf16 UTF-16 Unicode utf16_general_ci 4
utf16le UTF-16LE 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 jeu de caractères binaire binaire 1
geostd8 GE OSTD8 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 le jeu 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

CREATE DATABASE new_db DEFAULT CHARACTER SET 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

Pour que les champs de la table stockent et affichent correctement les données, nous devons définir le jeu de 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. Si le tableau a été créé, vous pouvez également le modifier via la commande Modifier.

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;

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

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éfinissez le jeu de caractères pour la connexion MySQL

Lors de la connexion au serveur MySQL, vous pouvez également définir le jeu de caractères pour l'opération. Ce paramètre de jeu de caractères est souvent appelé « jeu de caractères client » et fait référence au jeu de caractères des données transmises dans le 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, il peut être nécessaire d'activer d'autres paramètres de jeu de caractères de MySQL pour gérer certains scénarios rares de stockage et de conversion de données. À ce stade, vous devrez peut-être modifier le fichier de configuration MySQL - le fichier my.cnf. La modification de ce fichier peut nécessiter des droits 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.

  1. Résumé

MySQL est une base de données open source très populaire et son paramètre de jeu de caractères joue un rôle très important. La définition correcte du jeu de caractères de MySQL garantit une lecture, une écriture et un stockage normaux des données. Dans cet article, nous présentons les concepts de base des jeux de caractères MySQL, comment définir des jeux de caractères lors de la création de bases de données, de tables et de connexions, et comment modifier le fichier my.cnf pour activer davantage de paramètres de jeu de caractères. Ces connaissances peuvent mieux aider les développeurs. utilisez MySQL.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn