Maison >interface Web >js tutoriel >Encodage et décodage du jeu de caractères JavaScript en détail
1. Jeu de caractères
1) Caractère et octet (Caractère)
Le caractère est le terme général désignant divers textes et symboles, y compris les caractères tronqués, un caractère correspond à 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 courants des jeux de caractères : jeu de caractères ASCII, jeu de caractères GB2312, Unicode. jeu de caractères, etc.
3) Codage des caractères
Le codage des caractères consiste à convertir les symboles en binaires lisibles par ordinateur, et le décodage consiste à convertir les binaires en symboles lisibles 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) Utilisez décimal et hexadécimal dans les attributs HTML
Décimal peut utiliser "8" et hexadécimal en HTML, puis utilisez "Z", qui a un x de plus que le système décimal, et il y a également 6 caractères supplémentaires a~f dans le code décimal pour représenter 10~15.
2) Utilisez décimal et hexadécimal dans les attributs CSS
CSS est compatible avec le format décimal de HTML De plus, l'hexadécimal peut également être représenté sous la forme de « 6c » express.
3) Le package d'encodage JavaScript
peut exécuter directement les méthodes d'encodage de chaîne octal et hexadécimal via eval, où octal est représenté par "56" et hexadécimal est représenté par "x5c" express.
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 "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 qui ne sont pas codés par escape
*, , -, ., /, @, _, 0~9, a~z, A~Z et escape est 0 Lors du codage de valeurs Unicode autres que ~ 255, le format %u**** est généré.
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 que encodeURIComponent n'encode pas
!,' ,(, ), *, -, ., _, ~, 0~9, a~z, A~Z
Pour plus d'articles sur l'encodage et le décodage des jeux de caractères JavaScript, veuillez faire attention au PHP chinois site web!