2013-10-23 6 views
0

Windows 플랫폼의 XML 파일에서 아랍어 문자를 읽고 쓰고 싶습니다. 내 C++ 프로그램은 XML 파일에 Xerces를 사용합니다. Xerces 문서에서 언급했듯이, 유니 코드 문자를 지원합니다. 나는Xerces에서 유니 코드 문자열 읽기 및 쓰기

xercesc::XMLString::transcode("محمد") 

방법처럼

xercesc::XMLString::transcode() 

를 사용하지만 반환 ???? 캐릭터. 뭐가 잘못 됐어? (Xerces 문서에서 XMLCh가 wchar_t라는 힌트를 얻었습니다)

+0

당신이 트랜스 코딩 된 문자열로 무엇을 원하는 것처럼 트랜스 코딩 방법을 사용할 수있는 문자열을 원하는 경우

wstring test=wstring(xerces::XMLException::getMessage()); 

:이 같은이 치료를 할 수 있습니까? – adrianmcmenamin

답변

0

대답은 간단했습니다. 수색 후 찾았 어. XMLCh는 wchat_t의 typedef이므로 XMLC *를 인수로 취하는 xercesDomParser-> parser와 같은 일부 메소드의 경우 입력이 wstring use c_str() 유형 인 경우 입력하십시오. 예를 들어

parser.parse(input.c_str()); 

입력 문자열의 형태 인 경우, xmlString을 :: 트랜스() 메소드를 사용한다. 예를 들어

parser.parse(XMLString::transcode(stringVariable)); 

반대 측의 Xerces 방법으로 출력 wstring지고있다. 단순히 wstring 변수를 사용하고 초기화해야합니다. 예를 들어 xerces::XMLException::getMessage()은 XMLCh *를 출력으로 반환합니다. 당신은 당신이 다시

char* test=xerces::XMLString::transcode(xerces::XMLException::getMessage()); 
+0

당신은 당신 자신의 대답을 수락 할 수 있습니다. – adrianmcmenamin