매일 프론트 엔드 개발 작업에서 우리는 종종 HTML, JavaScript, CSS 및 기타 언어를 다룹니다. 실제 언어와 마찬가지로 컴퓨터 언어에는 알파벳, 문법, 어휘, 인코딩 방법 등도 있습니다. 여기서는 프론트 엔드 HTML 및 JavaScript의 일상적인 작업에서 종종 발생하는 인코딩 문제에 대해 간략하게 이야기 할 것입니다.
컴퓨터에서 우리가 저장하는 정보는 이진 코드로 표시됩니다. 화면에 표시된 영어 및 중국어와 같은 기호의 변환 및 저장에 사용되는 이진 코드와 같은 기호의 변환에 대해 우리가 알고있는 것은 인코딩입니다.
설명해야 할 두 가지 기본 개념에는 숯 및 문자 인코딩이 있습니다.
Charset, 캐릭터 세트, 즉 기호와 숫자 사이의 매핑 관계 테이블, 즉 107은 Koubei의 'a'이며, 21475는 입이라는 단어의 "입"이며 ASCII, GB2312, Unicode와 같은 다른 맵핑 관계가 있습니다. 이 숫자 및 문자의 매핑 테이블을 통해 바이너리 표현 숫자를 특정 문자로 변환 할 수 있습니다.
그램 인코딩, 인코딩 방법. 예를 들어, "포팅"해야하는 숫자 21475의 경우, /u5k3e3를 사용하여 그것을 나타내야합니까? 이것은 문자 인코딩에 의해 결정됩니다.
'cuoxin.com'과 같은 문자열의 경우 일반적으로 미국인에게 사용되는 캐릭터입니다. 그들은 ASCII라는 문자 세트를 공식화했으며, 전체 이름은 미국 표준 정보 교환 코드입니다. 128 숫자 0127 (2, 0 × 00-0 × 7F의 7 번째 파워)은 123ABC와 같은 일반적으로 사용되는 128자를 나타냅니다. 총 7 개의 비트가 있으며, 첫 번째 비트는 부호 비트이며, 보완 역 코드를 사용하여 음수 또는 무언가를 나타내는 데 사용해야합니다. 바이트를 형성하기 위해 총 8 비트가 있습니다. 당시 미국인들은 조금 따끔 거렸다. 만약 그들이 처음부터 16 비트 또는 32 비트 인 바이트를 설계했다면, 세계에는 많은 문제가있을 것입니다. 그러나 그 당시 그들은 아마도 8 비트가 충분하다고 생각했는데, 이는 128 개의 다른 캐릭터를 나타낼 수 있습니다!
컴퓨터는 미국인에 의해 만들어지기 때문에 스스로 문제를 절약하고 사용하는 모든 기호를 인코딩하여 사용하기에 매우 편안합니다. 그러나 컴퓨터가 국제화되기 시작하면 문제가 발생합니다. 중국을 예로 들어보십시오. 한자는 수만에 불과합니다. 어떻게해야하나요?
기존 8 비트 바이트 시스템은 기초이며, 파괴 될 수 없으며, 16 비트 또는 무언가로 수정할 수 없으며, 그렇지 않으면 변경 사항이 너무 커질 수 있으므로 다른 경로 만 가져갈 수 있습니다. 여러 ASCII 문자를 사용하여 MBC (Multi-Byte 캐릭터 시스템, 다중 바이트 문자 시스템)를 나타냅니다.
이 개념의 MBC를 사용하면 더 많은 문자를 나타낼 수 있습니다. 예를 들어, 2 개의 ASCII 문자를 사용하는 경우 16 비트가 있으며 이론적으로 1665,536 자의 힘에 2 개의 문자가 있습니다. 그러나 이러한 인코딩은 어떻게 문자에게 할당됩니까? 예를 들어, "입" "입"의 유니 코드 인코딩은 21475입니다. 누가 결정 했습니까? 방금 소개 된 숯불 인 캐릭터 세트. ASCII는 가장 기본적인 문자 세트입니다. 이 위에서, 우리는 단순화 된 중국어와 전통 중국어의 MBC에 대해 GB2312 및 BIG5와 유사한 캐릭터 세트를 가지고 있습니다. 마지막으로, Unicode Consortium이라는 제도가 있었는데,이 기관은 모든 문자와 해당 인코딩 방법, Namely Unicode를 포함하여 문자 세트 (UCS, UCS, Universal Character 세트)를 만들기로 결정했습니다. 1991 년부터 유니 코드 국제 표준 ISBN 0-321-18578-1의 첫 번째 판을 발표했으며, 국제 표준화 ISO는 ISO/IEC 10646 : The Universal Character Set의 사용자 정의에도 참여했습니다. 요컨대, 유니 코드는 기본적으로 지구의 모든 기존 기호를 포함하는 문자 표준입니다. 이제 점점 더 광범위하게 사용되고 있습니다. ECMA 표준은 또한 JavaScript 언어의 내부 문자가 유니 코드 표준을 사용한다고 규정합니다 (이는 JavaScript 변수 이름, 함수 이름 등이 중국어로 허용됨을 의미합니다!).
중국의 개발자의 경우 GBK, GB2312 및 UTF-8 사이의 전환과 같은 더 많은 문제가 발생할 수 있습니다. 엄밀히 말하면,이 진술은 그다지 정확하지 않습니다. GBK 및 GB2312는 문자 세트 (charsets)이고 UTF-8은 인코딩 방법 (문자 인코딩)이며, 이는 유니 코드 표준에서 UCS 문자 세트의 인코딩 메소드입니다. 유니 코드 문자 세트를 사용하는 웹 페이지는 주로 UTF-8으로 인코딩되므로 사람들은 종종 그것들을 합치게되며, 실제로는 부정확합니다.
적어도 인간 문명이 외계인을 만나기 전에 유니 코드를 사용하면 마스터 키이므로 사용하십시오. 이제 가장 널리 사용되는 유니 코드 인코딩 방법은 UTF-8 (8 비트 UCS/유니 코드 변환 형식)이며, 특히 몇 가지 좋은 점이 있습니다.
UCS 캐릭터 세트 인코딩 전 세계적으로 보편적입니다
ASCII와 호환되는 가변 길이 문자 인코딩 방법입니다.
두 번째 포인트는 순수한 ASCII 인코딩을 사용한 시스템을 이전에 호환 할 수 있고 추가 스토리지를 추가하지 않는 큰 이점입니다 (긴 인코딩 방법이 설정되어 있다고 가정하고 각 문자는 2 바이트로 구성된 다음 ASCII 문자가 차지하는 저장 공간이 두 배가됩니다).