>  기사  >  웹 프론트엔드  >  JavaScript 문자 세트 인코딩 및 디코딩 세부사항

JavaScript 문자 세트 인코딩 및 디코딩 세부사항

高洛峰
高洛峰원래의
2017-02-04 09:31:581489검색

1. 문자 집합

1) 문자 및 바이트(Character)

문자란 문자 하나가 1~n바이트에 해당하는 문자를 포함하여 다양한 텍스트와 기호를 총칭하는 용어입니다. , 1바이트는 8비트에 해당하며 각 비트는 0 또는 1로 표시됩니다.

2) 문자 집합

문자 집합은 여러 문자의 모음입니다. 각 문자 집합에는 서로 다른 수의 문자가 포함됩니다. 일반적인 문자 집합 이름: ASCII 문자 집합, GB2312 문자 집합, 유니코드 문자셋 등

3) 문자 인코딩

문자 인코딩은 기호를 컴퓨터가 읽을 수 있는 바이너리로 변환하는 것이고, 디코딩은 바이너리를 사람이 읽을 수 있는 기호로 변환하는 것입니다.

대부분의 문자 집합은 하나의 인코딩 방법에 해당하지만(예: GBK는 GBK 인코딩에 해당) UTF-8, UTF-16, UTF-32 및 UTF-7을 포함하여 많은 유니코드 인코딩이 있습니다.

현재 가장 일반적으로 사용되는 웹페이지는 "UTF-8"입니다. UTF-8은 각 문자를 인코딩하는 데 1~4바이트를 사용하므로 기존 ASCII 텍스트를 변환할 필요가 없습니다.

2. 브라우저 기반

1) HTML 속성에 10진수와 16진수 사용

10진수는 HTML에서 "8"을 사용할 수 있으며, 16진수는 "Z"를 사용합니다. 10진수보다 x가 하나 더 많고, 10~15를 나타내는 10진수 문자 a~f도 6개가 더 있습니다.

2) CSS 속성에 10진수와 16진수를 사용하세요

CSS는 HTML의 10진수 형식과 호환되며, 16진수도 “6c” 표현 형식으로 표현할 수 있습니다.

3) 자바스크립트 인코딩 패키지

는 eval을 통해 문자열 8진수와 16진수 인코딩 방법을 직접 실행할 수 있는데, 여기서 8진수는 "56", 16진수는 "x5c"로 표현됩니다.

코드에 중국어 문자가 사용되고 16진수 인코딩이 필요한 경우 16진수 유니코드 인코딩만 수행할 수 있으며 해당 표현은 "u4ee3u7801"입니다.

"웹 프론트엔드 해킹 기술 공개"에서는 인코딩과 디코딩 두 가지 방법을 캡슐화했는데, 구체적인 코드는 여기서 볼 수 있다.

핵심 코드는 "str.charCodeAt(char).toString(base)" 및 "String.fromCharCode(parseInt(code, base))"입니다.

charCodeAt() 메서드는 An을 반환합니다. 주어진 인덱스에서 UTF-16 코드 단위를 나타내는 0에서 65535 사이의 정수

정적 String.fromCharCode() 메서드는 지정된 유니코드 값 시퀀스를 사용하여 생성된 문자열을 반환합니다.

온라인 웹페이지를 통해서도 "MonyerJS"를 인코딩하고 디코딩할 수 있습니다.

4) HTML 자동 디코딩 메커니즘

예를 들어 웹페이지에 16진수 "Hello"를 입력하면 자동으로 "hello"로 디코딩됩니다.

이러한 메커니즘을 적용한 유명한 공간 " "도 있습니다.

3. 브라우저 인코딩

JavaScript에는 문자열을 인코딩하고 디코딩할 수 있는 세 쌍의 함수가 있습니다. 즉,

escape/unescape, encodeURI/decodeURI, encodeURIComponent/decodeURIComponent입니다. .

가장 큰 차이점은 인코딩되지 않은 문자 수입니다.

1) Escape로 인코딩할 수 없는 문자는 69개입니다.

*, +, -, ., /, @, _, 0~9, a~z, A~Z 및 escape가 맞습니다. 0~255 이외의 유니코드 값을 인코딩할 경우 %u**** 형식이 출력됩니다.

2) encodeURI

!, #, $, &, ', (,), *, +,,, -,.,/,로 인코딩되지 않은 문자가 82개 있습니다. :, ;,=,?,@,_,~,0~9,a~z,A~Z

3) encodeURIComponent가 인코딩하지 않는 문자가 71개 있습니다

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

더 많은 JavaScript 문자 집합 인코딩 및 디코딩 관련 기사를 보려면 PHP에 주목하세요. 중국사이트!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.