Maison  >  Article  >  interface Web  >  Explication détaillée de l'encodage et du décodage des jeux de caractères JavaScript pour vous (tutoriel graphique)

Explication détaillée de l'encodage et du décodage des jeux de caractères JavaScript pour vous (tutoriel graphique)

亚连
亚连original
2018-05-19 13:34:591623parcourir

Cet article vous donne une explication détaillée du jeu de caractères en JavaScript, ainsi que de l'encodage et du décodage des jeux de caractères. Il est très détaillé. Les amis dans le besoin peuvent s'y référer

1. . Ensemble de caractères

1) Caractères et octets (caractère)

Le caractère est le terme général désignant divers textes et symboles, y compris les caractères tronqués ; à 1~n Octets, un octet correspond à 8 bits, chaque bit est représenté par 0 ou 1.

2) Jeu de caractères

Un jeu de caractères est une collection de plusieurs caractères. Chaque jeu de caractères contient un nombre différent de caractères. Noms de jeux de caractères courants : jeu de caractères ASCII. , jeu de caractères GB2312, jeu de caractères Unicode, etc.

3) Codage des caractères

Le codage des caractères consiste à convertir les symboles en binaire lisible par ordinateur, et le décodage consiste à convertir le binaire en symbole lisible par l'homme.

La plupart des jeux de caractères correspondent à une méthode d'encodage (par exemple, GBK correspond à l'encodage GBK), mais il existe de nombreux encodages Unicode, notamment UTF-8, UTF-16, UTF-32 et UTF-7.

La page Web la plus couramment utilisée est actuellement "UTF-8". UTF-8 utilise un à quatre octets pour coder chaque caractère. Il s'agit d'un sur-ensemble d'ASCII, le texte ASCII existant n'a donc pas besoin d'être converti.

2. Base du navigateur

1) L'utilisation de décimal et d'hexadécimal dans les attributs HTML

Décimal en HTML "8" peut être utilisé en hexadécimal, et "Z" est utilisé en hexadécimal. Il y a un x de plus que le décimal, et il y a également six caractères supplémentaires a~f dans le code hexadécimal pour représenter 10~15.

2) Décimal et hexadécimal sont utilisés dans les attributs CSS

CSS est compatible avec la forme hexadécimale du HTML De plus, l'hexadécimal peut également être utilisé exprimé sous la forme. de "6c".

3) Le package d'encodage JavaScript

peut exécuter directement les méthodes d'encodage octal et hexadécimal de chaîne via eval, où octal est représenté par "56" et dix hexadécimaux sont représentés par " x5c".

Si des caractères chinois sont utilisés dans le code et qu'un codage hexadécimal est requis, seul le codage Unicode hexadécimal peut être effectué, et sa représentation est : "u4ee3u7801".

Dans "Web Front-end Hacking Technology Revealed", deux méthodes sont encapsulées pour l'encodage et le décodage. Les deux méthodes suivantes sont principalement utilisées. Le code spécifique peut être consulté ici.

Les codes de base sont : "str.charCodeAt(char).toString(base)" et "String.fromCharCode(parseInt(code, base))"

la méthode charCodeAt() renvoie An entier compris entre 0 et 65535 représentant l'unité de code UTF-16 à l'index donné

La méthode statique String.fromCharCode() renvoie une chaîne créée à l'aide de la séquence spécifiée de valeurs Unicode.

Vous pouvez également encoder et décoder "MonyerJS" via une page Web en ligne.

4) Mécanisme de décodage automatique HTML

Par exemple, si vous saisissez un "Bonjour" hexadécimal sur une page Web, il sera automatiquement décodé en "Bonjour".

Il existe également des espaces " " bien connus qui disposent également de ce mécanisme.

3. Encodage du navigateur

Il existe trois paires de fonctions en JavaScript qui peuvent encoder et décoder des chaînes, à savoir :

escape/unescape, encodeURI. /decodeURI, encodeURIComponent/decodeURIComponent.

La principale différence est le nombre de caractères qui ne sont pas codés.

1) Il y a 69 caractères que l'échappement ne code pas

*、+、-、.、/、@、_、0~9、a~z、A~Z et lorsque l'échappement code des valeurs Unicode autres que 0 à 255, il génère %u *** *Format.

2) Il y a 82 caractères qui ne sont pas codés par encodeURI

!、#、$、&、'、(、)、*、+、,、-、.、/、:、;、=、?、@、_、~、0~9、a~z、A~Z

3) Il y a 71 caractères qui sont non encodé par encodeURIComponent

!、'、(、)、*、-、.、_、~、0~9、a~z、A~Z

Ce qui précède est ce que j'ai compilé pour vous, j'espère qu'il vous sera utile à l'avenir.

Articles associés :

Explication détaillée de l'utilisation du prototype JS et de la chaîne de prototypes

Explication détaillée de Servlet3.0 et JS via des exemples d'interaction Ajax

p5.jsRésumé des fonctions d'interaction du clavier

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