UTF - 8 - 위키백과, 우리 모두의 백과사전 UTF - 8 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 유니코드 부호화 형식 UTF - 7 UTF - 8 CESU - 8 UTF - 16 UTF - 32 UTF - EBCDIC SCSU 퓨니코드 GB18030 UCS 양방향 텍스트 BOM 한중일 통합 한자 유니코드 범위 목록 유니코드 정규화 유니코드와 HTML 유니코드와 전자 우편 유니코드 글꼴 v. d. e. h UTF - 8은 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로, 켄 톰프슨과 롭 파이크가 만들었다. UTF - 8은 Universal Coded Character Set Transformation Format - 8 - bit 의 약자이다. 본래는 FSS - UTF ( F
문자열을 다루기 위한 추상적인 인터페이스를 만드는 것으로 해결될 수 있다. 실제로 기술적으로는 UTF - 16도 BMP 바깥 문자를 4바이트로 표현하기 때문에 가변 길이 인코딩이다. BMP에 들어 있는 한중일 문자들은 UTF - 8에서 3바이트로 표현되지만, UTF - 16에서는 2바이트로 표현된다. 따라서 UTF - 8에서는 이러한 문자를 표현하기 위하여 더 많은 바이트가 필요하며 UTF - 16과 비교할 때 최대 50 % 까지 크기가 늘 수 있다. 하지만 반대로 U00부터 U007F 사이의 글자들은 UTF - 16에서 크기가 두 배로 늘기 때문에 실질적으로는 큰 문제가 없을 수도 있다. 같이 보기 [ 편집 ] ASCII UCS 바이트 순서 문자 ( BOM ) UTF - 16 각주
, UTF - 8은 ASCII와 호환되기 때문에 0x00이나 0x2f [UNK] 항상 U00과 U002F에 대응되므로 기존 API를 약간 수정해서 쓸 수 있다. UTF - 16은 바이트 순서를 나타내기 위하여 바이트 순서 문자 ( BOM, UFEFF ) 가 필요하지만, UTF - 8은 바이트 순서가 정해져 있기 때문에 BOM이 필요하지 않다. 단점 UTF - 8은 가변 길이 인코딩이며, 다른 문자는 다른 바이트 수로 표현될 수 있다. 사실 이 문제는 별로 심각한 것이 아니며, UTF - 8 문자열을 다루기 위한 추상적인 인터페이스를 만드는 것으로 해결될 수 있다. 실제로 기술적으로는 UTF - 16도 BMP 바깥 문자를 4바이트로 표현하기 때문에 가변 길이 인코딩이다. BM
과 롭 파이크가 만들었다. UTF - 8은 Universal Coded Character Set Transformation Format - 8 - bit 의 약자이다. 본래는 FSS - UTF ( File System Safe UCS / Unicode Transformation Format ) 라는 이름으로 제안되었다. UTF - 8 인코딩은 유니코드 한 문자를 나타내기 위해 1바이트에서 4바이트까지를 사용한다. 예를 들어서, U00부터 U007F 범위에 있는 ASCII 문자들은 UTF - 8에서 1바이트만으로 표시된다. 4바이트로 표현되는 문자는 모두 기본 다국어 평면 ( BMP ) 바깥의 유니코드 문자이며, 거의 사용되지 않는다. UTF - 16과 UTF - 8 중 어느 인코딩이 더 적은 바이트를 사용하는지는 문자
U007F까지의 공백과 문장 부호를 포함한 ASCII 문자들은 1바이트로 표현할 수 있기 때문에, 한중일 문자와 표의 문자를 사용하지 않는 대부분의 문자열을 UTF - 16보다 더 작은 크기로 표현할 수 있다. 유닉스의 파일 시스템과 여러 도구들은 [UNK] 기본 단위로 하며, 널 문자와 경로 식별자 ( /, 0x2F ) 에 특별한 의미를 부여하는 경우가 많다. 0x00이나 0x2f [UNK] U00과 U002F가 아닌 다른 문자에서도 나타날 수 있는 UTF - 16 등의 인코딩과는 달리, UTF - 8은 ASCII와 호환되기 때문에 0x00이나 0x2f [UNK] 항상 U00과 U002F에 대응되므로 기존 API를 약간 수정해서 쓸 수 있다. U
어 평면 ( BMP ) 바깥의 유니코드 문자이며, 거의 사용되지 않는다. UTF - 16과 UTF - 8 중 어느 인코딩이 더 적은 바이트를 사용하는지는 문자열에서 사용된 코드 포인트에 따라 달라지며, 실제로 DEFLATE와 같은 일반적인 압축 알고리즘을 사용할 경우 이 차이는 무시할 수 있을 정도이다. 이러한 압축 알고리즘을 사용하기 힘들고 크기가 중요할 경우 유니코드 표준 압축 방식 ( Standard Compression Scheme for Unicode ) 을 대신 사용할 수 있다. 목차 1 구조 2 변형된 UTF - 8 3 UTF - 8의 설계 원칙 4 오류 처리 5 장점과 단점 5. 1 일반적으로 5. 2 기존의 인코딩들과 비교했을 때 5. 3 UTF - 7과 비교했을 때 5. 4 UTF - 16과
설계 원칙 4 오류 처리 5 장점과 단점 5. 1 일반적으로 5. 2 기존의 인코딩들과 비교했을 때 5. 3 UTF - 7과 비교했을 때 5. 4 UTF - 16과 비교했을 때 6 같이 보기 7 각주 8 외부 링크 구조 [ 편집 ] UTF - 8은 여러 표준 문서에서 다른 방법으로 정의되어 있지만, 일반적인 구조는 모두 동일하다고 볼 수 있다. 유니코드 코드 포인트를 나타내는 비트들은 여러 부분으로 나뉘어서, UTF - 8로 표현된 바이트의 하위 비트들에 들어 간다. U007F까지의 문자는 7비트 ASCII 문자와 동일한 방법으로 표시되며, 그 이후의 문자는 다음과 같은 4바이트까지의 비트 패턴으로 표시된다. 7비트 ASCII 문자와 혼동되지 않게 하기 위하여 모든
해당 바이트들을 다른 인코딩으로 해석한다. 오류로 처리하지 않고 UTF - 8과 비슷한 형식으로 취급하여 디코딩한다. ( 이러한 동작은 디코더의 버그일 수도 있다 ) 오류를 보고한다. 또한 디코더들은 다른 잘못된 입력에 대해서 다른 동작을 보일 수 있다. RFC 3629에서는 UTF - 8 디코더들이'너무 긴 형식 ', 즉 해당 문자를 표현하는 데 필요한 최소의 바이트보다 더 많은 바이트를 사용해서 표현한 바이트들을 잘못된 입력으로 처리해야 한다고 요구하고 있다. 유니코드 표준에서는 유니코드를 따르는 디코더가'잘못된 형식으로 표현된 모든 단위 문자열을 오류로 처리하고, 따라서 잘못된 형식으로 표현된 단위 문자열을 해석하거나 생성해 내서는 안 된다'라고 요구하고 있다.
바이트, 아닌 것은 4바이트로 표시된다. 위의 패턴을 사용하면 더 큰 코드 포인트를 표시할 수도 있다. 원래 UTF - 8은 6바이트를 사용해서 U7FF까지의 코드 포인트를 표현할 수 있게 하였으나, 2003년 11월에 발표된 RFC 3629에서는 유니코드에서 실제로 정의하는 U10FF까지의 문자만을 표시할 수 있도록 제한하였다. 따라서 이전까지는 UTF - 8에서 나타날 수 없는 바이트가 0xFE와 0xFF 뿐이었지만, RFC 3629에 따라서 0xC0, 0xC1, 그리고 0xF5부터 0xFF까지의 13개의 바이트가 나타날 수 없게 되었다. 변형된 UTF - 8 [ 편집 ] 자바는 내부적으로 문자열을 UTF - 16 인코딩으로 저장하
일반적으로 적당한 기존 인코딩으로 표현한 문자열보다 더 크다. 판독 기호를 사용하는 대부분의 라틴 알파벳 문자는 적어도 2바이트를 사용하며, 한중일 문자들과 표의 문자들은 적어도 3바이트를 사용한다. 한중일 문자들과 표의 문자를 제외한 거의 모든 기존 인코딩들은 한 문자에 1바이트를 사용하므로 문자열 처리가 간편한 반면, UTF - 8은 그렇지 않다. UTF - 7과 비교했을 때 [ 편집 ] 장점 UTF - 8은 한 문자를 표현하는 데 UTF - 7보다 더 적은 바이트들을 사용한다. UTF - 8은 " " 를 그대로 인코딩하지만 UTF - 7은 " - " 로 인코딩한다. 단점 UTF - 8은 8비트 안전한 전송 체계가 필요하다. 전자 우편에서 quoted
UTF-8은 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로, 켄 톰프슨과 롭 파이크가 만들었다. UTF-8은 Universal Coded Character Set Transformation Format - 8-bit의 약자이다. 본래는 FSS-UTF(File System Safe UCS/Unicode Transformation Format)라는 이름으로 제안되었다. UTF-8 인코딩은 유니코드 한 문자를 나타내기 위해 1바이트에서 4바이트까지를 사용한다. 예를 들어서, U00부터 U007F 범위에 있는 ASCII 문자들은 UTF-8에서 1바이트만으로 표시된다. 4바이트로 표현되는 문자는 모두 기본 다국어 평면(BMP) 바깥의 유니코드 문자이며, 거의 사용되지 않는다. UTF-16과 UTF-8 중 어느 인코딩이 더 적은 바이트를 사용하는지는 문자열에서 사용된 코드 포인트에 따라 달라지며, 실제로 DEFLATE와 같은 일반적인 압축 알고리즘을 사용할 경우 이 차이는 무시할 수 있을 정도이다. 이러한 압축 알고리즘을 사용하기 힘들고 크기가 중요할 경우 유니코드 표준 압축 방식(Standard Compression Scheme for Unicode)을 대신 사용할 수 있다.