컴퓨터프로그래밍

UTF-8 - 문자 인코딩

유니 코드는 거의 모든 기존의 문자 집합을 지원합니다. 유니 코드 문자 집합을 인코딩하는 가장 좋은 형태는 UTF-8 인코딩된다. 이것은 데이터 처리 효율의 용이성 왜곡 ASCII 호환성 저항을 지원한다. 첫째하지만 먼저 가지.

코딩 형태

바이트 32 비트 워드 - 컴퓨터 추상 수학적 대상뿐만 아니라, 저장 장치의 조합 및 취급 고정 된 크기의 데이터뿐만 아니라 숫자 동작한다. 제시하는 방법을 결정할 때 인코딩 표준은이 점을 고려해야합니다 문자의 수를.

컴퓨터 시스템에서, 상기 정수는 8 비트 (1 바이트), 16 또는 32 비트의 메모리 셀에 저장된다. 각 형태의 메모리 셀들의 시퀀스는 특정 기호에 대응하는 정수이고, 유니 인코딩을 정의한다. 표준 유니 코드 캐릭터 8, 16 및 32 비트 블록들을 코딩하는 세 가지 형태가있다. 따라서, 그것들은 UTF-8, UTF-16, UTF-32으로 공지되어있다. 이름 UTF 유니 코드 변환 형식을 의미합니다. 인코딩 수단의 세 가지 형태의 각각은 동일한 표현의 유니 코드 문자는 각종 용도에 이점을 갖는다.

데이터 암호화는 유니 코드 표준의 모든 문자를 나타내는 데 사용할 수 있습니다. 따라서, 그들은 여러 가지 이유로 솔루션에 완벽하게 호환됩니다 코딩의 다른 양식을 사용하여. 각 코딩 모호 데이터의 손실없이 다른 둘 중 어느로 변환 할 수있다.

nenalozheniya 원리

폼 유니 부호화 각각 비 중첩 부분의 관점에서 개발 하였다. 예를 들어, Windows-932 코드의 하나 또는 두 개의 바이트 문자를 형성한다. 시퀀스 길이는 첫 번째 바이트에 의존하므로 2 바이트 단일 바이트 분리 된 일련의 선두 바이트의 값. 그러나, 단일 바이트의 값과 뒤의 바이트 순서가 일치 할 수있다. 이것은 문자 검색 D (코드 44)가 실수로 2 바이트 문자 "D"의 시퀀스의 제 2 부분으로 입력 (코드 84 (44))을 발견 할 수있는, 예를 들어을 의미한다. 올바른되는 순서를 확인하려면, 프로그램은 이전 바이트 고려해야한다.

상황이 경우 선행 및 후행 바이트 일치 복잡하다. 이것은 모호성을 제거하기 위해 텍스트 또는 고유 코드 시퀀스의 시작 부분에 도달하기 전에 역방향 조회를 할 것을 의미합니다. 이것은 비효율적 일뿐만 아니라 전체 텍스트를 하나의 잘못된 바이트를 읽을 수 없게했기 때문에, 가능한 오류로부터 보호되지 않습니다.

선두, 후미의 가치, 스토리지의 하나의 단위가 동일한 정보하지 않기 때문에 형식 변환 유니 코드는이 문제를 피할 수 있습니다. 이것은 결코 인해 문자 코드의 다른 부분의 우연의 일치에 대한 잘못된 결과를 제공하지, 검색 및 비교를 위해 모든 유니 코드를 보장합니다. 코딩 이러한 형태는 원칙 nenalozheniya을 준수한다는 사실은 다른 동아시아 멀티 바이트 인코딩에서 그들을 구별한다.

nonintersection 또 다른 측면 유니 코드 인코딩은 각 문자가 명확하게 정의 된 경계를 가지고 있다는 것입니다. 이는 이전 심볼의 무기한를 스캔 할 필요가 없습니다. 이 기능은 때때로 자기 클러킹 인코딩이라고합니다. 코드 단위의 왜곡은 하나 개의 캐릭터의 왜곡을 소개하고, 주변의 문자는 그대로입니다. 8 비트 포맷 변환에서, 바이트 (바이너리 코드) 10xxxxxx에 시작하여 포인터 포인트는 심볼의 시작이 1 ~ 3 역 전환에 필요한 찾을 경우.

일관성

유니 코드 컨소시엄은 완전히 인코딩의 3 형식을 지원합니다. 유니 코드 문자 인코딩 표준의 예 똑같이 유효 양식 -이 모든 포맷 변환와 UTF-8 및 유니 코드를 반대하지 않는 것이 중요하다.

바이트 지향

유니 코드와 일치 32 비트 코드 단위가 필요합니다 UTF-32 문자를 표현합니다. UTF-16 - 두 개의 16 비트 단위로 하나. UTF-8은 4 바이트까지 사용합니다.

UTF-8 인코딩 바이트 지향 ASCII 기반 시스템과 호환되도록 설계되었습니다. 오랜 시간 동안 기존의 소프트웨어 및 정보 기술의 연습의 대부분은 일련의 바이트 문자의 표현에 의존했다. 다중 프로토콜의 불변성에 따라 ASCII 인코딩 및 사용 중 특수 제어 문자를 피할 수 있습니다. 간단한 방법은 유니 코드 문자, 동등한 ASCII 문자 또는 제어 문자를 나타내는 8 비트 코드를 사용하여, 상황 유니 코드 수에 적응합니다. 이를 위해, 그리고 UTF-8 인코딩된다.

가변 길이

UTF-8 - 가변 길이 부호화 8 비트 저장 단위로 구성은, 상위 비트는 각 바이트들의 시퀀스의 어느 부분이 속하는 나타낸다. 코드 시퀀스의 첫 번째 요소에 할당 한 값의 범위, 또 - 다음 대한. 이 disjointness 인코딩을 제공합니다.

ASCII

UTF-8 인코딩을 완벽하게 지원되는 ASCII 코드 (0x00-0x7F). 이것은 유니 코드 문자 U + 0000-U + 007F는 단일 바이트 0x00-0x7F의 UTF-8로 변환하여 ASCII 구별 될 것을 의미한다. 또한, 모호성을 피하기 위해, 값은 유니 코드 문자의 단일 바이트 표현에서 더 이상 사용되지 0x00-0x7F. 기호는 두 바이트 시퀀스를 사용하여 ASCII 이외의 neideograficheskih 인코딩합니다. 기호는 U + 0800-U + FFFF가 3 바이트로 표현됩니다 다양하며, U + FFFF보다 더 많은 부가적인 코드는 4 바이트가 필요합니다.

응용 분야

UTF-8 인코딩은 일반적으로 HTML 프로토콜의 우선 순위를 부여 등이다.

XML은 UTF-8 인코딩을 완벽하게 지원하는 최초의 표준이되었습니다. 표준 조직은 또한 좋습니다. 컨소시엄 W3C와 IETF 엔지니어링 그룹 모두의 코딩에 대한 합의에 왔을 때 ASCII 문자들과 다른 URL 주소의 지원 문제가 해결 된 URL 주소 독점적으로 UTF-8.

ASCII와의 호환성은 새로운 소프트웨어로의 전환을 용이하게합니다. UTF-8은 JEDIT, 이맥스, BBEdit에서, 이클립스, Windows 운영 체제 "메모장"을 포함한 대부분의 텍스트 편집기를 작품. 인코딩 유니 코드의 다른 형태는 도구의 이러한 지원을 자랑 할 수 없습니다.

이점을 코딩하는 것은 일련의 바이트로 구성되어 있다는 것이다. UTF-8 문자열로 C와 다른 프로그래밍 언어에서 일하기 쉽다. 이 인코딩의 유일한 형태이며, 레이블을 필요로하지 않는 순서는 BOM 또는 XML의 인코딩 선언 바이트.

자기 동기화

다른 멀티 바이트 문자 세트에 비해 상기 처리 8- 비트 심볼을 사용하는 환경에서, UTF-8은 다음과 같은 장점이있다 :

  • 첫 번째 바이트 코드 시퀀스의 길이에 대한 정보가 포함되어 있습니다. 이것은 직접 검색의 효율성을 증가시킨다.
  • 시작 바이트 값의 일정 범위로 제한된다로서 심볼의 시작을 찾아 단순화.
  • 어떤 교차 바이트 값이 없습니다.

혜택 비교

UTF-8 인코딩 컴팩트. 동아시아 문자를 인코딩하는 데 사용하지만 (중국어, 일본어, 한국어, 표지판을 사용하여 중국어 쓰기) 3 바이트 시퀀스를 사용했다. 또한, UTF-8 인코딩 처리 속도를 코딩하는 다른 형태로 떨어진다. 이진 분류 라인 유니 선별 이진 동일한 결과를 생성한다.

문자 인코딩 방식

문자 인코딩 방식은 인코딩 된 심볼 형태와 단일 바이트 위치 코드 단위를 포함하는 방법. 유니 코드 표준 초기 바이트 순서 마크 (BOM, 바이트 순서 마크)의 사용을 제공하는 인코딩 방식을 결정한다.

UTF-8 특징 태그의 BOM은 코딩 형태의 사용은 참조에 의해 제한되는 경우. 그 인코딩 유닛 크기가 1 바이트 엔디안으로 UTF-8을 결정하는 문제가있다. 코딩이 양식에 대한 BOM 사용이 필요하지 않으며 권장되지도. BOM은 UTF-8 인코딩 바이트 순서 마크 또는 서명을 사용하여 다른 코딩에서 변환 할 수있는 텍스트에서 발생할 수있다. EF BB 16 16 BF 16 세 바이트의 순서는 다음과 같습니다.

가 UTF-8 인코딩을 설정하는 방법

코딩 HTML UTF-8은 다음 코드로 설치됩니다

머리

META HTTP-당량 = "Content-Type을"내용 = "text / html과; 문자셋 = UTF-8"˃

PHP에서 UTF-8 인코딩 출력 레벨 값의 오차를 설정 한 후에 파일의 시작 부분에 헤더 () 함수를 사용하여 설정된다 :

˂? PHP는

error_reporting를 (-1);

헤더 ( "콘텐츠 형식 : text / html; 문자셋 = UTF-8 ');

UTF-8 인코딩이 설정되어있는 MySQL 데이터베이스에 연결하려면 :

˂? PHP는

mysql_set_charset ( 'UTF8');

CSS의 파일 인코딩은 다음과 같이 UTF-8 문자가 지정되어 있습니다 :

@charset "UTF-8";

모든 종류의 파일, BOM이없는 UTF-8 인코딩을 선택 저장하면 다른 사이트가 작동하지 않습니다. UTF-8 인코딩을 변경 DreamWeave에서이 작업을 수행하려면 메뉴 항목 "제목 / 인코딩 - - 페이지 속성 수정"을 선택해야합니다. 페이지를 다시로드 한 다음, "연결 유니 코드 서명 (BOM)»에서 체크 표시를 제거하고 변경 사항을 적용합니다. 페이지 또는 데이터베이스에 텍스트가 코딩의 또 다른 형태를 도입 한 경우 다시 입력하거나 다시 인코딩 할 필요가있다. 당신이 정규 표현식을 사용하여 작업 할 때 수정 자에게 유를 사용하십시오.

또한 윈도우의 "메모장"에 UTF-8 인코딩으로 파일을 저장할 수 있습니다. 메뉴 항목을 선택한 후 "파일 - 다른 이름으로 저장 ..."인코딩 필요한 양식을 설치하고 UTF-8 파일을 저장합니다.

메뉴 항목을 통해, UTF-8 이외의 설정하면 텍스트 편집기 메모장 ++에서 "BOM없이 UTF-8로 변환»문자를 변경하고 UTF-8로 저장합니다.

대안이 없다

정치와 언어의 경계가 삭제되는 세계화의 맥락에서, 지역의 특성을 가지고있는 문자 집합은 거의 사용합니다. 유니 코드는 모든 언어 버전을 지원하는 단일 문자 집합입니다. UTF-8 - 인 유니의 적절한 구현의 예 :

  • 그것은 ASCII 인코딩과의 호환성을 포함하여 도구의 광범위한 지원;
  • 이 왜곡 데이터에 대한 내성;
  • 간단하고 치료에 효과;
  • 플랫폼 독립적이다.

더 인코딩 또는 문자 세트의 어떤 형태에 대해 UTF-8 논쟁의 출현과 함께, 그것은 의미가된다.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ko.birmiss.com. Theme powered by WordPress.