>  기사  >  웹 프론트엔드  >  모든 JavaScript 개발자가 유니코드에 대해 알아야 할 사항

모든 JavaScript 개발자가 유니코드에 대해 알아야 할 사항

高洛峰
高洛峰원래의
2016-10-15 11:52:361069검색

목차:

1 유니코드의 개념

2 유니코드의 기본 개념

2.1 문자 및 코드 포인트

2.2 유니코드 플레인

2.3 코드 요소

2.4 프록시 쌍

2.5 문자 결합

JavaScript의 3 유니코드

3.1 이스케이프 시퀀스

3.2 문자열 비교

3.3 문자열 길이

3.4 문자 위치 지정

3.5 정규 일치

4 결론

1. 🎜>

먼저 가장 기본적인 질문을 해보세요. 이 글을 어떻게 읽고 이해하셨나요? 대답은 간단합니다. 왜냐하면 당신은 이 단어들의 의미와 그것들을 구성하는 단어들을 이해하기 때문입니다.

그럼 이 단어의 의미를 어떻게 이해하시나요? 대답도 간단합니다. 왜냐하면 여러분(독자)과 나(작가)는 이러한 그래픽(화면에 나타난)과 한자(즉, 의미)의 연관성에 대해 동일한 이해를 갖고 있기 때문입니다.

컴퓨터의 경우 이 원리는 비슷하지만 한 가지 차이점이 있습니다. 컴퓨터는 이러한 단어(문자)의 의미를 이해하지 못하고 특정 비트 시퀀스로만 이해합니다.

시나리오를 상상해 보겠습니다. 컴퓨터 사용자 1이 컴퓨터 사용자 2에게 'hello' 메시지를 보냅니다.

컴퓨터는 이 문자가 무엇을 의미하는지 모릅니다. 따라서 컴퓨터 User1은 'hello' 메시지를 일련의 숫자 0x68 0x65 0x6C 0x6C 0x6F로 변환합니다. 여기서 각 문자는 숫자에 해당합니다. h는 0x68에 해당하고 e는 0x65에 해당합니다.

그런 다음 이 번호를 컴퓨터 User2로 보냅니다.

컴퓨터 User2는 디지털 시퀀스 0x68 0x65 0x6C 0x6C 0x6F를 수신한 후 동일한 문자 및 숫자 집합을 사용하여 메시지 내용을 재구성하고 'hello'가 올바르게 표시될 수 있습니다.

문자와 숫자의 대응에 대한 서로 다른 컴퓨터 간의 합의는 유니코드 표준화의 결과입니다.

유니코드에 따르면 h는 LATIN SMALL LETTER H라는 추상 문자입니다. 이 추상 문자는 U+0068이라는 라벨이 붙은 코드 포인트인 숫자 0x68에 해당합니다. 이러한 개념은 다음 장에서 설명됩니다.

유니코드의 역할은 추상 문자 목록(문자 집합)을 제공하고 각 문자에 고유 식별자 코드 포인트(인코딩된 문자 집합)를 할당하는 것입니다.

2. 유니코드의 기본 개념

www.unicode.org 웹사이트 언급:

유니코드는 각 문자에 고유 번호를 할당합니다.

플랫폼 없음

프로그램에 구애받지 않음

언어에 구애받지 않음

유니코드는 전 세계 대부분의 쓰기 시스템의 문자 집합을 정의하고 각 문자에 고유한 문자 집합을 할당하는 전 세계 문자 집합입니다. 번호(코드 포인트).

유니코드에는 대부분의 현대 언어, 구두점, 발음 구별 부호(발음 부호), 수학 기호, 기술 기호, 화살표 및 이모티콘 등이 포함됩니다.

유니코드 1.0의 첫 번째 버전은 1991년 10월에 출시되었으며 7161자를 포함했습니다. 최신 버전 9.0(2016년 6월 출시)은 128172자의 인코딩을 제공합니다.

유니코드의 다양성과 개방성은 과거에 존재했던 문제를 해결합니다. 공급업체는 처리하기 어려운 다양한 문자 집합과 인코딩 규칙을 구현합니다.

모든 문자 집합과 인코딩 규칙을 지원하는 애플리케이션을 만드는 것은 매우 복잡합니다. 선택한 인코딩이 필요한 모든 언어를 지원하지 않을 수도 있다는 점은 말할 것도 없습니다.

유니코드가 어렵다고 생각한다면 유니코드 없이 프로그래밍하는 것이 얼마나 어려울지 생각해 보세요.

파일 내용을 읽기 위해 필요한 문자셋과 인코딩 규칙을 무작위로 선택하던 시절이 아직도 기억납니다. 그것은 모두 성격에 달려 있습니다!

2.1 문자 및 코드 포인트

추상 문자(예: 텍스트 문자)는 텍스트 데이터를 구성, 관리 또는 표현하는 데 사용되는 정보 단위입니다.

유니코드의 문자는 추상적인 개념입니다. 각 추상 문자에는 LATIN SMALL LETTER A와 같은 해당 이름이 있습니다. 이 추상 문자의 그래픽 표현(상형 문자)은 다음과 같습니다. (번역자 주: glyph는 이미지 문자입니다.)

코드 포인트는 추상 문자에 부여된 번호를 의미합니다.

코드 포인트는 U+

형태로 표현되며, U+는 Unicode를 의미합니다. 접두사이며 은 16진수입니다. 예를 들어 U+0041과 U+2603은 모두 코드 포인트입니다.

코드 포인트의 값 범위는 U+0000부터 U+10FFFF까지입니다.

코드 포인트는 단순한 숫자라는 점을 기억하세요. 유니코드에 대해 생각할 때 이 점을 명심하십시오.

코드 포인트는 배열 요소의 첨자와 같습니다.

유니코드의 마법은 코드 포인트를 추상 문자와 연결하는 것입니다. 예를 들어 U+0041에 해당하는 추상 문자의 이름은 LATIN CAPITAL LETTER A(A로 표시됨)이고, U+2603에 해당하는 추상 문자의 이름은 SNOWMAN(☃으로 표시됨)입니다.

모두는 아닙니다. 코드 포인트는 해당 추상 문자가 있습니다. 사용 가능한 코드 포인트는 114,112개이지만 추상 문자는 128,237개만 할당됩니다.

2.2 유니코드 평면

평면은 U+n0000부터 U+nFFFF까지의 간격을 의미하며, 이는 65536(1000016)개의 연속된 유니코드 코드 포인트입니다. n의 값 범위는 016부터입니다. 1016.

이 평면은 유니코드 코드 포인트를 17개의 동일한 크기 세트로 나눕니다.

평면 0에는 U+0000부터 U+FFFF까지의 코드 포인트가 포함됩니다.

평면 1에는 다음의 코드 포인트가 포함됩니다. U+**1**0000에서 U+**1**FFFF

...

평면 16에는 U+**10**0000에서 U+**10 **코드 포인트가 포함됩니다. FFFF용

모든 JavaScript 개발자가 유니코드에 대해 알아야 할 사항

기본 다국어 평면

평면 0은 특별하며 기본 다국어 평면 또는 줄여서 BMP라고 합니다. 여기에는 대부분의 현대 언어(기본 라틴어, 키릴 문자, 그리스어 등)의 문자와 많은 기호가 포함되어 있습니다.

위에서 언급한 바와 같이 기본 다국어 평면의 코드포인트 값 범위는 U+0000부터 U+FFFF까지이며, 최대 16진수 4자리까지 가질 수 있습니다.

대부분의 개발자는 BMP에서 문자를 다룹니다. 대부분의 경우 필수 문자가 포함되어 있습니다.

BMP의 일부 문자:

e는 코드 포인트 U+0065 추상 문자 이름에 해당: LATIN SMALL LETTER E

|코드 포인트 U+007C 추상 문자 이름에 해당 : VERTICAL BAR

■ 코드 포인트 U+25A0에 해당 추상 문자 이름: BLACK SQUARE

☂ 코드 포인트 U+2602에 해당 추상 문자 이름: UMBRELLA

Starlight Plane

BMP 이후의 16개 평면(평면 1, 평면 2,..., 평면 16)을 아스트랄 평면 또는 보조 평면이라고 합니다.

아스트랄계의 코드 포인트를 아스트랄 코드 포인트라고 합니다. 이러한 코드 포인트의 범위는 U+10000부터 U+10FFFF까지입니다.

Starlight 코드 포인트는 U+ddddd 또는 U+dddddd와 같이 5개 또는 6개의 16진수 숫자를 가질 수 있습니다.

아스트랄계의 일부 캐릭터를 살펴보겠습니다.

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