2009-11-16 2 views
1

문자열을 C++의 한 문자 세트에서 다른 것으로 변환하는 방법은 무엇입니까? 예를 들어 wstring을 UTF-8 문자 배열 또는로 변환하고 싶습니다. 이 작업을 수행하는 방법?C++에서 한 문자 세트의 문자열을 다른 문자 세트로 변환하는 방법은 무엇입니까?

나는 표준 방법을 요구하지 않는다. chilkatsoft, wxWidgets, Qt. 그것의 평범한 C + + 응용 프로그램. 몇 가지 간단한 클래스 또는 메서드가 작업을 수행 할지라도.

+0

귀하의 솔루션은 사용하는 라이브러리만큼만 이식 가능할 것입니다 (예 : ICU는 매우 휴대 가능합니다). 라이브러리를 전혀 사용하지 않으려는 경우 수천 개의 항목이있는 조회 표를 복사 할 준비가되어 있어야합니다. –

+0

utf-16과 utf-8은 모두 동일한 기본 숫자의 서로 다른 인코딩이므로 매우 작은 플랫폼 독립적 인 방식으로이 변환을 수행 할 수 있습니다. 그 밖의 모든 것에 대해서는 많은 문자 인코딩이 의미가 있거나 단일 플랫폼에서만 정의됩니다. 이는 플랫폼 특정 문자 세트 변환 루틴으로 파일 (또는 파일)을 갖는 것이 합당한 곳 중 하나입니다. –

+0

안녕하세요 priyank 시선 Anirudha 굽타 http://anirudhagupta.blogspot.com –

답변

3

문자 집합에 대한 일반적인 반복은 유니 코드입니다. 따라서 유니 코드 지향 라이브러리가 필요합니다. Qt 및 wxWidgets와 같은 프레임 워크는이 기능 중 일부를 제공합니다. ICU는 유니 코드 텍스트 처리와 관련이 있습니다.

+0

표준 C++에서 묻습니다. wxWidgets 또는 Qt의 수하물에 대해 알고 있어야합니다. –

+2

묵시적 전제 조건은 다음과 같습니다. C++에서 문자 집합 간의 변환 기능이 없습니다. –

+2

실제로. 그리고 그 도서관에 "수하물"이 들어있는 이유는 컴퓨터가 그렇게 많이 있기 때문입니다. 대부분이 ISO에 의해 표준화되지 않았습니다. 한 명은 다른 사람이 필수 기능을 수행하고있다. – MSalters

1

libiconv (Google it)을 사용할 수 있으며 많은 인코딩을 지원합니다.

+0

어떻게 휴대용 libiconv는 무엇입니까? 샘플이 있습니까? –

관련 문제