Dans le travail de développement frontal quotidien, nous traitons souvent avec HTML, JavaScript, CSS et d'autres langues. Comme un vrai langage, le langage informatique a également son alphabet, sa grammaire, ses lexiques, ses méthodes d'encodage, etc. Ici, je parlerai brièvement des problèmes de codage qui rencontrent souvent dans le travail quotidien de HTML et JavaScript frontal.
Dans les ordinateurs, les informations que nous stockons sont représentées par du code binaire. Ce que nous savons sur la conversion de symboles tels que les caractères anglais et chinois affichés à l'écran et le code binaire utilisé pour le stockage est le codage.
Il y a deux concepts de base à expliquer, le charset et le codage des caractères:
Charset, un jeu de caractères, c'est-à-dire un tableau des relations de cartographie entre un symbole et un nombre, c'est-à-dire qu'il détermine que 107 est le «A» de Koubei, 21475 est la «bouche» du bouche à oreille, et différentes tableaux ont des relations de cartographie différentes, comme ASCII, GB2312, Unicode. Grâce à cette table de cartographie des nombres et des caractères, nous pouvons convertir un numéro représenté binaire en un certain caractère.
Encodage de gramter, méthode d'encodage. Par exemple, pour le numéro 21475 qui devrait être «porté», devrions-nous utiliser / U5K3E3 pour le représenter, ou% E5% 8F% A3 pour le représenter? Ceci est déterminé par le codage des caractères.
Pour les chaînes comme «Cuoxin.com», ce sont des personnages couramment utilisés pour les Américains. Ils ont formulé un jeu de caractères appelé ASCII, le nom complet étant le code d'information standard américain. Les 128 numéros 0127 (à la 7e puissance de 2, 0 × 00-0 × 7F) représentant les 128 caractères couramment utilisés tels que 123ABC. Il y a 7 bits au total, et le premier est le bit de signe, qui doit être utilisé pour utiliser le code inverse du complément pour représenter des nombres négatifs ou quelque chose. Il y a 8 bits au total pour former un octet. Les Américains étaient un peu avares à l'époque. S'ils avaient conçu un octet de 16 bits ou 32 bits depuis le début, il y aurait de nombreux problèmes dans le monde. Cependant, à ce moment-là, ils pensaient probablement que 8 bits étaient suffisants, ce qui pourrait représenter 128 personnages différents!
Parce que les ordinateurs sont fabriqués par des Américains, ils économisent des ennuis eux-mêmes et codent tous les symboles qu'ils utilisent, ce qui les rend très confortables à utiliser. Mais lorsque les ordinateurs ont commencé à s'internationaliser, le problème se pose. Prenez la Chine à titre d'exemple. Les caractères chinois ne sont que des dizaines de milliers. Que dois-je faire?
Le système d'octets de 8 bits existant est la base, il ne peut pas être détruit, il ne peut pas être modifié à 16 bits ou quelque chose, sinon les modifications seront trop grandes, vous ne pouvez donc prendre qu'un autre chemin: utiliser plusieurs caractères ASCII pour représenter un caractère différent, c'est-à-dire MBCS (système de caractères multi-octets, système de caractères multi-byte).
Avec ce concept de MBCS, nous pouvons représenter plus de personnages. Par exemple, si nous utilisons 2 caractères ASCII, il y a 16 bits et en théorie, il y a 2 caractères à la puissance de 16 65 536 caractères. Mais comment ces encodages sont-ils affectés aux caractères? Par exemple, le codage Unicode de "bouche" "bouche" est 21475. Qui a décidé? Le jeu de caractères, qui est le Charset qui vient d'être introduit. ASCII est le jeu de caractères le plus élémentaire. Au-dessus de cela, nous avons des ensembles de caractères similaires à GB2312 et BIG5 pour les MBC dans des chinois et chinois traditionnels simplifiés, etc. Depuis 1991, il a publié la première édition d'Unicode International Standards, ISBN 0-321-18578-1, et l'Organisation internationale pour la normalisation ISO a également participé à la personnalisation de cela, ISO / IEC 10646: le jeu de caractères universels. En bref, Unicode est une norme de caractère qui couvre essentiellement tous les symboles existants sur la terre. Il est maintenant utilisé de plus en plus largement. La norme ECMA stipule également que les caractères internes de la langue JavaScript utilisent la norme Unicode (cela signifie que les noms de variables JavaScript, les noms de fonction, etc. sont autorisés en chinois!).
Pour les développeurs en Chine, ils peuvent rencontrer plus de problèmes tels que la conversion entre GBK, GB2312 et UTF-8. À strictement parler, cette déclaration n'est pas très précise. GBK et GB2312 sont des jeux de caractères (butssets), tandis que l'UTF-8 est une méthode de codage (codage de caractères), qui est une méthode de codage des jeux de caractères UCS dans la norme Unicode. Étant donné que les pages Web utilisant des jeux de caractères Unicode sont principalement codées avec UTF-8, les gens les assemblaient souvent, ce qui est en fait inexact.
Avec Unicode, au moins avant que la civilisation humaine ne rencontre des extraterrestres, il s'agit d'une clé principale, alors utilisez-le. Désormais, la méthode de codage Unicode la plus utilisée est UTF-8 (format de transformation UCS / UCNOCE 8 bits), qui a plusieurs choses particulièrement bonnes:
Encoding Set de caractères UCS, Universal Worldwide
Il s'agit d'une méthode de codage de caractères de longueur variable, compatible avec ASCII
Le deuxième point est un grand avantage, ce qui rend les systèmes qui utilisaient un codage ASCII pur précédemment compatible, et n'ajoute pas de stockage supplémentaire (en supposant qu'une longue méthode d'encodage est définie, chaque caractère se compose de 2 octets, puis l'espace de stockage occupé par les caractères ASCII sera doublé à ce moment-là).