다른 인코딩의 문서를 변환하는 데 현재 iconv
을 사용하고 있습니다. 코드 정확도를 유지하면서 iconv 사용
size_t iconv (
iconv_t cd,
const char* * inbuf,
size_t * inbytesleft,
char* * outbuf,
size_t * outbytesleft
);
지금까지, 난 단지 유형
char*
의 버퍼를 변환했다 그러나 나는 또한 내가 형
wchar_t*
의 버퍼를 변환 할 수 깨달았다
iconv()
기능은 다음과 같은 프로토 타입을 가지고있다. 실제로, iconv
에는 이러한 버퍼에 대한 전용 인코딩 이름 인 "wchar_t"
이 있습니다.이 인코딩은 운영 체제 설정에 맞게 조정됩니다. 즉, 내 컴퓨터에서는 Windows의 경우 UCS-2를, Linux의 경우 UTF-32를 나타냅니다.
그러나 여기에는 문제가있다 : 나는 wchar_t*
의 버퍼를 가지고 있다면이 iconv
에서 사용하는 char*
의 버퍼에 reinterpret_cast
수 있지만, 그때는 구현 정의 된 행동에 직면 : 나는 모든 컴파일러가 행동 할 것을 확신 할 수 없다 캐스트와 관련해서도 마찬가지입니다.
여기서 어떻게해야합니까?
'mbstowcs()'이후 명확하지 않은 "시스템 인코딩"과 확실한 인코딩 사이를 변환하려면 사실 WCHAR 인코딩이 중요합니다 ... –