Heim > Artikel > Web-Frontend > Kodierung und Dekodierung des JavaScript-Zeichensatzes im Detail
1. Zeichensatz
1) Zeichen und Byte (Zeichen)
Zeichen ist der allgemeine Begriff für verschiedene Texte und Symbole, einschließlich verstümmelter Zeichen; ein Zeichen entspricht 1~n Bytes , ein Byte entspricht 8 Bits, jedes Bit wird durch 0 oder 1 dargestellt.
2) Zeichensatz
Ein Zeichensatz ist eine Sammlung mehrerer Zeichen. Jeder Zeichensatz enthält eine unterschiedliche Anzahl von Zeichensatznamen: ASCII-Zeichensatz, GB2312-Zeichensatz, Unicode Zeichensatz usw.
3) Zeichenkodierung
Bei der Zeichenkodierung geht es darum, Symbole in computerlesbare Binärzeichen umzuwandeln, und bei der Dekodierung geht es darum, Binärzeichen in für Menschen lesbare Symbole umzuwandeln.
Die meisten Zeichensätze entsprechen einer Codierungsmethode (GBK entspricht beispielsweise der GBK-Codierung), es gibt jedoch viele Unicode-Codierungen, darunter UTF-8, UTF-16, UTF-32 und UTF-7.
Die derzeit am häufigsten verwendete Webseite ist „UTF-8“. UTF-8 verwendet ein bis vier Bytes zur Codierung jedes Zeichens. Es handelt sich um eine Obermenge von ASCII, sodass vorhandener ASCII-Text nicht konvertiert werden muss
2. Browserbasis
1) Verwenden Sie Dezimal- und Hexadezimalzahlen in HTML-Attributen.
Dezimalzahlen können in HTML „8“ und Hexadezimalzahlen verwenden. Verwenden Sie dann „Z“. ein x mehr als das Dezimalsystem, und es gibt auch 6 Zeichen mehr a~f im Dezimalcode, um 10~15 darzustellen.
2) Verwenden Sie Dezimal- und Hexadezimalzahlen in CSS-Attributen
CSS ist mit dem Dezimalformat von HTML kompatibel. Darüber hinaus kann Hexadezimalzahl auch in der Form „6c“ ausgedrückt werden.
3) Das JavaScript-Codierungspaket
kann String-Oktal- und Hexadezimal-Codierungsmethoden direkt über eval ausführen, wobei Oktal durch „56“ und Hexadezimal durch „x5c“ dargestellt wird.
Wenn im Code chinesische Zeichen verwendet werden und eine hexadezimale Kodierung erforderlich ist, kann nur eine hexadezimale Unicode-Kodierung durchgeführt werden. Die Darstellung lautet: „u4ee3u7801“.
In „Web Front-end Hacking Technology Revealed“ werden zwei Methoden zum Kodieren und Dekodieren gekapselt. Die folgenden zwei Methoden werden hauptsächlich verwendet. Der spezifische Code kann hier angezeigt werden.
Die Kerncodes sind: „str.charCodeAt(char).toString(base)“ und „String.fromCharCode(parseInt(code, base))“
Die Methode charCodeAt() gibt An zurück Ganzzahl zwischen 0 und 65535, die die UTF-16-Codeeinheit am angegebenen Index darstellt
Die statische String.fromCharCode()-Methode gibt eine Zeichenfolge zurück, die mit der angegebenen Folge von Unicode-Werten erstellt wurde.
Sie können „MonyerJS“ auch über eine Online-Webseite kodieren und dekodieren.
4) Automatischer HTML-Dekodierungsmechanismus
Wenn Sie beispielsweise auf einer Webseite hexadezimal „Hallo“ eingeben, wird es automatisch in „Hallo“ dekodiert.
Es gibt auch einige bekannte Leerzeichen „ “, die ebenfalls über diesen Mechanismus verfügen.
3. Browser-Kodierung
Es gibt drei Funktionspaare in JavaScript, die Zeichenfolgen kodieren und dekodieren können, nämlich:
escape/unescape, encodeURI/decodeURI, encodeURIComponent/decodeURIComponent .
Der Hauptunterschied besteht in der Anzahl der Zeichen, die nicht kodiert sind.
1) Es gibt 69 Zeichen, die nicht durch Escape codiert werden können
*, +, -, ., /, @, _, 0~9, a~z, A~Z und Escape ist korrekt. Beim Codieren anderer Unicode-Werte als 0 bis 255 wird das Format %u**** ausgegeben.
2) Es gibt 82 Zeichen, die nicht von encodeURI codiert werden
!, #, $, &, ', (,), *, +,,, -,.,/, :, ;,=,?,@,_,~,0~9,a~z,A~Z
3) Es gibt 71 Zeichen, die kodiert werdenURIComponent kodiert nicht
!, ',( ,),*,-,.,_,~,0~9,a~z,A~Z
Weitere Artikel zur Kodierung und Dekodierung von JavaScript-Zeichensätzen finden Sie im PHP Chinesische Website!