2011-03-23 4 views
0

Windows에서 생성 된 xml을 사용하고 있습니다. 저작권 문자가 포함되어 있습니다. 이 파일을 가져 와서 내 C++ Linux 응용 프로그램에서 파싱해야합니다. mbstowcs 함수를 사용해야하지만이 함수는 look : \ 302 \ 256의 저작권 (R) char를 구문 분석 할 수 없습니다.특수 문자로 인해 mbstowcs()가 실패했습니다

의견이 있으십니까?

10x!

+4

'setlocale()'을 (를) 호출 하시겠습니까? 무슨 논쟁? 'LANG' 환경 변수는 무엇입니까? – caf

+1

xml 파일의 인코딩에 맞는 로케일을 설정해야합니다. – smerlin

답변

1

파일의 인코딩은 무엇입니까? 멀티 바이트 문자열로 작성 되었습니까, 아니면 UTF-8로 작성 되었습니까? UTF-8은 멀티 바이트 문자열과 반드시 ​​같을 필요가 없으므로 UTF-8을 읽을 수 없다면 직접 변환해야 할 수도 있습니다 (C++ 스트림에서는 조금 까다 롭습니다). 내 변환 작업을 위해 오픈 소스 솔루션 (UTF8-CPP)을 사용하고 있으며 Linux와 Windows에서 잘 작동합니다. std :: string 및 std :: wstring을 사용하여 모든 변환 작업을 수행 할 수 있습니다 (넓은 문자열은 utf-8로, 그 반대로도 가능).

+0

'0302 0256'은 (R) 문자의 UTF-8 인코딩이므로 (8 진수) UTF-8은 OP와 유사합니다. . – caf

관련 문제