Heim  >  Artikel  >  Web-Frontend  >  Kodierung und Dekodierung des JavaScript-Zeichensatzes im Detail

Kodierung und Dekodierung des JavaScript-Zeichensatzes im Detail

高洛峰
高洛峰Original
2017-02-04 09:31:581489Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn