2013-07-26 2 views
4

UTF-8은 1, 2 및 최대 4 바이트로 인코딩 할 수 있습니다. 내 시스템의 char 한 개가 1 바이트입니다. 임의의 UTF-8로 인코딩 된 문자를 넣을 수 있도록 예방 차원에서 wchar_t을 사용해야합니까?UTF-8을 사용할 때 wchar_t를 사용해야합니까?

+0

필요하지 않습니다. 이것을 참조하십시오 : lulyon

+0

'wchar_t'는 (보통?) 2가 아닌 4입니다. – Yakk

+0

아니요 http를 참조하십시오. : //utf8everywhere.org 당신이해야 할 일 : –

답변

8

아니요, 유니 코드 4.0 표준 (ISO 1 0,646 :

wchar_t의 폭 컴파일러 관련되고 8 비트 정도로 작을 수있다 : 2003) 것을 말한다. 결과적으로 C 또는 C++ 컴파일러에서 이식 가능해야하는 프로그램은 유니 코드 텍스트를 저장하는 데 wchar_t을 사용하지 않아야합니다. 대부분의 상황에서

, UTF-8 텍스트의 "문자 자연은"그래서 그냥 다른 문자열처럼 char 요소의 배열로 처리, 프로그램 관련없는 것, 충분합니다. 그러나 개별 문자를 추출해야하는 경우 모든 유니 코드 코드 포인트를 수용하기 위해 최소 24 비트 (예 : uint32_t)의 문자 유형으로 저장해야합니다.

2

wchar_t 코드를 이식성있게 만들고 싶지 않은 경우에는별로 유용하지 않습니다. wikipedia

의 wchar_t의 폭

컴파일러 - 특정 8 비트 정도로 작을 수있다. 결과적으로 C 또는 C++ 컴파일러에서 이식 가능해야하는 프로그램은 유니 코드 텍스트를 저장하는 데 wchar_t를 사용하지 않아야합니다. wchar_t의 유형은 또한

"일부 컴파일러 유니 코드 문자 일 수 컴파일러 정의 와이드 문자를 저장하기위한 의도

C 및 C++에서 모두 고정 된 크기의 문자 유형을 char16_tchar32_t 소개 wchar_t을 구현 정의로 남겨둔 채로 16 비트 및 32 비트 유니 코드 변환 형식의 명확한 표현을 제공하는 2011 년 개정 각 표준.

관련 문제