L'éditeur suivant vous proposera un article sur le codage de caractères de base de Python. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil.
Avant-propos
L'encodage des caractères est très facile à tromper. devrait garder quelques choses à l'esprit. L'exécution du programme consiste à lire d'abord le fichier dans la mémoire3 Unicode est l'encodage parent et ne peut être codé et décodé que dans d'autres formats d'encodage
utf-8. un encodage sub-8 et ne peut être décodé qu'en Unicode
1 Qu'est-ce que l'encodage de caractères
Nous savons que les ordinateurs ne peuvent reconnaître que le binaire. , et les codes que nous écrivons habituellement doivent être convertis en binaire pour être reconnus par l'ordinateur. Alors, comment convertir les caractères que nous écrivons en binaire ? Ce processus utilise en fait une norme pour faire correspondre les caractères que nous écrivons à des nombres spécifiques. Cette norme est appelée codage de caractères. Caractère------(Encodage des caractères)------->Numéro
2. Historique de développement de l'encodage des caractères
1. Code ASCII
Les ordinateurs sont originaires des États-Unis et le codage des caractères est également originaire des États-Unis. Mais les caractères utilisés par le peuple américain ne comportent que 26 lettres, plus quelques symboles spéciaux. Contrairement à la Chine, les élèves du primaire doivent connaître des milliers de caractères chinois. Ainsi, les Américains utilisent le code ASCII (American Standard Code for Information Interchange) comme codage de caractères. Un octet représente un caractère 1 octet = 8 bits, ce qui représente 256 changements différents, mais initialement seulement les 7 premiers. ont été utilisés, soit 127 caractères, ce qui est suffisant pour le peuple américain (pour des raisons de coût bien sûr). Plus tard, le latin a été compilé en 8ème position. À ce stade, les codes ASCII sont pleins et les pays anglophones et latins peuvent jouer avec bonheur. 2.GBK
Bien que la technologie chinoise ne soit actuellement pas aussi bonne que celle de l'empire américain, nous avons un cœur positif, donc, en 1980 , l'Administration d'État des normes a publié le codage de caractères utilisé en chinois -> GBK, qui utilise deux octets pour représenter un caractère chinois, de sorte qu'il y ait 2 à la puissance 16, soit 65 536 combinaisons, ce qui est suffisant pour les caractères chinois. Dans le même temps, d'autres pays ont également publié leurs propres normes nationales de codage de caractères, telles que shift_JIS au Japon, Euc-kr en Corée du Sud, etc.
3. Unicode
On dit qu'il y avait des centaines d'encodages de caractères à leur apogée, et ils ne se soutenaient pas. Il semble que les gens de tous les pays soient très forts d'esprit, mais ça. n'est pas propice à l'interopérabilité du monde, c'est pourquoi Unicode est né. En 1994, l'Organisation internationale de normalisation a publié Unicode, connu sous le nom de Code universel, qui utilise deux octets pour représenter un caractère et compte 65 536 combinaisons, ce qui peut déjà couvrir la plupart des langues du monde. 4.utf-8
Bien qu'Unicode soit bon, il y a un problème que l'anglais peut être exprimé en un octet est maintenant To. utilisez deux octets, l'espace de stockage est doublé, ce qui n'est évidemment pas parfait, c'est pourquoi UTF-8 a été créé, qui n'utilise que 1 octet pour les caractères anglais et 3 octets pour les caractères chinois. 5. Tous les caractères Unicode sont sur deux octets, ce qui est simple et grossier. La conversion des caractères en nombres est rapide, mais elle prend beaucoup d'espace de stockage
utf-8 utilise différentes longueurs pour représenter différents caractères, économisant ainsi de l'espace, mais l'efficacité de la conversion n'est pas aussi rapide qu'UnicodeLe codage de caractères utilisé dans la mémoire est Unicode, et la mémoire est d'accélérer, donc je préfère sacrifier un peu d'espace, mais aussi assurer la vitesseLa transmission du disque dur et du réseau utilise utf-8, car le délai d'E/S disque ou d'E/S réseau est bien supérieur à l'efficacité de la conversion de l'utf-8 et la transmission réseau doivent économiser autant que possible la bande passante
3. Exécution de l'interpréteur Python La première étape :l'interpréteur python démarre, cela équivaut à démarrer un éditeur de texte La deuxième étape : L'interpréteur python sert d'éditeur de texte pour ouvrir le t. py et copiez le fichier t.py depuis le disque dur. Le contenu est lu dans la mémoire
La troisième étape : L'interpréteur python interprète et exécute simplement le code de t.py. chargé en mémoire
La deuxième étape, le fichier t.py a un encodage de caractères lors de l'enregistrement, et la même méthode d'encodage doit être spécifiée lorsque l'interpréteur Python ouvre le fichier (la méthode d'encodage par défaut de Python2 est ASCII, et la méthode d'encodage par défaut de Python3 est utf-8). Si le format d'encodage de l'enregistrement du fichier est différent de celui de l'interpréteur Python, la méthode d'encodage par défaut du navigateur est différente, vous devez donc écrire #coding: au début. du fichier pour indiquer à l'interpréteur Python de ne pas utiliser sa méthode de codage par défaut pour lire, mais d'utiliser la méthode spécifiée par le fichier d'en-tête pour lire le fichier, afin que vous ne puissiez pas vous tromper. La troisième étape : lire le code qui a été chargé en mémoire (Unicode par défaut), puis l'exécuter. Lors du processus d'exécution, si des opérations telles que la définition de variables sont rencontrées, un nouvel espace mémoire sera ouvert dans le fichier. mémoire. Veuillez noter à ce stade que l'espace mémoire nouvellement ouvert n'est pas nécessairement Unicode. L'utilisateur peut spécifier la méthode d'encodage lors de la définition de la variable. L'espace mémoire ouvert lors de la définition n'est qu'un espace et peut stocker des codes dans n'importe quel format d'encodage. Prenons Python3 comme exemple 4 Encodage et décodage Enregistrer des fichiers consiste à enregistrer des fichiers dans. mémoire Vers le disque dur La lecture de fichiers consiste à lire les fichiers du disque dur dans la mémoire Unicode est l'encodage parent, utf-8, GBK sont les encodages enfants. Si le sous-code veut être converti en d'autres codes, il doit d'abord être converti en code parent, puis converti du code parent en d'autres sous-codes Le décodage est le décodage, qui est le code parent. processus de conversion du sous-code en code parent Unicode L'encodage est un encodage, qui est le processus de conversion d'Unicode en d'autres encodages Comme je l'ai déjà dit, lorsqu'un fichier est lu en mémoire, il devient le codage Unicode (bien sûr, c'est le codage par défaut, et peut également être modifié selon les instructions), Le processus de lecture des fichiers du disque dur consiste à décoder l'utf-8 du disque dur en Unicode . Lorsque le fichier est enregistré, il s'agit du processus de sauvegarde de la mémoire sur le disque dur. Le disque dur est codé en utf-8 et doit être codé par Unicode en utf-8 5. La différence entre Python2 et Python3 6. Imprimez sur le terminal
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!