2009-12-19 2 views
5

자습서에서이 작업에 대한 코드를 찾고자했습니다.PugiXML을 사용하는 유니 코드 XML 구문 분석을위한 샘플 코드

누군가가 PugiXml을 사용했다면 나를 도울 수 있습니까?

내 주요 문제는 유니 코드입니다. 그렇지 않으면 라이브러리를 사용하기가 매우 쉽습니다.

미리 감사드립니다.

+0

내가 PugiXML 현재 모든 입력이 UTF-8 있다고 가정 참조하십시오. UTF-8 파일을 파싱하는 데 문제가 있습니까? 아니면 wchar_t/wstring을 사용하여 PugiXML을 사용하려고하십니까? 아니면 ...? – ZoogieZork

+0

사실 wchar_t [] 배열을 사용하여 데이터를 저장하려고합니다. – Wartin

+0

열쇠는'pugi :: as_utf8()'을 사용하여 wchar_t 데이터를 PugiXML에 전달하고'pugi :: as_utf16()'을 사용하여 wchar_t 데이터를 가져 오는 것입니다. 필자는 PugiXML에서 사용되는 모든 char * 문자열은 UTF-8이라고 가정하지만 설명서에서는 명확하지 않습니다. – ZoogieZork

답변

0

pugiconfig.hpp를 열고 PUGIXML_WCHAR_MODE를 주석 처리 해제하십시오.

이제 char 및 std :: string 대신 wchar_t 및 std :: wstring을 사용할 수 있습니다.

빠른 시작은 여기에 있습니다 : http://pugixml.googlecode.com/svn/tags/latest/docs/quickstart.html

+0

이것은 유니 코드와 어떤 관련이 있습니까? UTF-8은 완벽하게 유효한 유니 코드 인코딩입니다. –

+0

@ Nicol Bolas 플랫폼에 따라 다릅니다. Windows에서는 유니 코드 문자를 char 유형에 맞출 수 없습니다. wchar_t 여야합니다. http://stackoverflow.com/questions/402283/stdwstring-vs-stdstring – junglecat

+0

먼저 유니 코드에는 문자가 없습니다. 그것은 코드 포인트, 코드 유닛, 그리고 graphemes을 가지고 있습니다. 둘째, UTF-8 **은 완벽하게 유효한 유니 코드 인코딩 **입니다. 당신이 작업하고있는 플랫폼은 그 사실과 무관합니다. UTF-8은 사용자가 Windows를 사용하고 있기 때문에 작동을 멈추지 않습니다. 예, 이름이 ASCII 문자를 사용하지 않는 파일을 열려면 Windows에서 UTF-16으로 변환해야합니다. 그러나 그것은 "유니 코드"의 성격이 아니라 API 인터페이스의 문제입니다. Microsoft는 "유니 코드"의 의미를 지정하지 않습니다. –