Maison  >  Article  >  base de données  >  Quelles sont les différences entre les différents formats d'encodage dans MySQL

Quelles sont les différences entre les différents formats d'encodage dans MySQL

(*-*)浩
(*-*)浩original
2019-05-08 10:39:254415parcourir

La différence entre les différents formats d'encodage dans MySQL est la suivante : l'encodage ASCII stocke directement le numéro de série du caractère dans le jeu de caractères codés en tant que caractère dans l'encodage Latin1, qui est une extension de l'encodage ASCII ; - L'encodage 8 est un encodage de caractères de longueur variable pour Unicode.

Quelles sont les différences entre les différents formats d'encodage dans MySQL

Cet article expliquera et présentera certains encodages de MySQL, mais il ne s'agit pas de tous les encodages de jeux de caractères.

Cours recommandé : Tutoriel vidéo MySQL

1. Introduction aux jeux de caractères

Le personnage est une variété de texte et Le terme général désignant des symboles, comprenant les caractères de divers pays, les signes de ponctuation, les symboles graphiques, les chiffres, etc.

Le jeu de caractères est une collection de plusieurs caractères. Il existe de nombreux types de jeux de caractères. Chaque jeu de caractères contient un nombre différent de caractères. Noms de jeu de caractères courants : jeu de caractères ASCII, jeu de caractères GB2312, jeu de caractères BIG5, Jeu de caractères GB18030, jeu de caractères Unicode, etc. Pour qu'un ordinateur puisse traiter avec précision du texte dans différents jeux de caractères, un codage de caractères est nécessaire afin que l'ordinateur puisse reconnaître et stocker divers textes.

Le codage de caractères (codage de caractères) consiste à coder un certain caractère du jeu de caractères en un caractère du jeu de caractères spécifié afin que le texte puisse être stocké dans l'ordinateur et transmis via le réseau de communication. Des exemples courants incluent le codage de l'alphabet latin en ASCII, qui numérote les lettres, les chiffres et d'autres symboles et les représente dans un système binaire à 7 bits.
L'ordre des caractères (collation) fait référence aux règles de comparaison entre les caractères d'un même jeu de caractères. Ce n'est qu'après avoir déterminé l'ordre des caractères que nous pouvons définir quels sont les caractères équivalents dans un jeu de caractères et la relation de taille entre les caractères. Un caractère peut contenir plusieurs séquences de caractères. Les règles de dénomination de l'ordre des caractères MySQL sont les suivantes : commencez par le nom du jeu de caractères correspondant à l'ordre des caractères, centrez avec le nom du pays (ou centrez avec le général) et terminez par ci, cs ou bin. La séquence de caractères se terminant par ci indique le respect de la casse, la séquence de caractères se terminant par cs indique le respect de la casse et la séquence de caractères se terminant par bin indique une comparaison basée sur des valeurs codées binaires.

2. Codage ASCII

ASCII est à la fois un jeu de caractères codés et un codage de caractères ASCII stocke directement le numéro de série du caractère dans le jeu de caractères codés. caractère dans l’ordinateur.
Par exemple : en ASCII, le caractère A est classé 65ème dans le tableau, le numéro de série est 65 et la valeur de A après encodage est 0100 0001, ce qui est le résultat de la conversion binaire de 65 en décimal.

3. Jeu de caractères Latin1

Le jeu de caractères Latin1 est étendu en fonction du jeu de caractères ASCII. Il utilise toujours un octet pour représenter les caractères, mais permet des caractères d'ordre élevé. étendu Spécifie la plage de représentation du jeu de caractères.

4. Codage UTF-8

UTF-8 (8-bit Unicode Transformation Format) est un codage de caractères de longueur variable pour Unicode, également connu sous le nom de code universel. . Créé par Ken Thompson en 1992. Il est désormais normalisé sous le nom de RFC 3629. UTF-8 encode les caractères Unicode en utilisant 1 à 6 octets.
UTF-8 est une méthode de codage d'octets de longueur variable. Pour le codage UTF-8 d'un certain caractère, s'il n'y a qu'un seul octet, le bit binaire le plus élevé est 0 ; s'il s'agit de plusieurs octets, le premier octet commence par le bit le plus élevé et le nombre de bits binaires consécutifs est 1. Détermine le nombre de chiffres à coder et les octets restants commencent par 10. UTF-8 peut être utilisé jusqu'à 6 octets. Comme indiqué dans le tableau :
1 octet 0xxxxxxx
2 octets 110xxxxx 10xxxxxx
3 octets 1110xxxx 10xxxxxx 10xxxxxx
4 octets 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5 octets 111110xx 10xxxxxx 10xxx xxx 10xxxxxx 1 0xxxxxx
6 octets 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Par conséquent, le nombre réel de chiffres pouvant être utilisés pour représenter le codage de caractères en UTF-8 peut aller jusqu'à 31, qui est le bit représenté par x dans le tableau ci-dessus. A l'exception des bits de contrôle (10 au début de chaque octet, etc.), les bits représentés par x correspondent au codage UNICODE un à un, et l'ordre des bits est le même.
Lors de la conversion réelle d'UNICODE en codage UTF-8, vous devez d'abord supprimer les 0 d'ordre élevé, puis déterminer le nombre minimum de chiffres de codage UTF-8 requis en fonction des chiffres de codage restants. Par conséquent, les caractères du jeu de caractères ASCII de base (UNICODE compatible avec ASCII) peuvent être représentés par un seul octet de codage UTF-8 (7 bits binaires).

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