XML (UTF-8)이 있습니다. 나는 PugiXML 라이브러리를 사용하여 변수 std::string
의 값을 읽어야합니다. 값을 읽은 다음 콘솔에 인쇄하고 있지만 실제 프로젝트에서는 그 값을 PDF에 저장해야합니다 (LibHaru 라이브러리 사용). 내 MWE 다음입니다 : 내가 Pugixml 라이브러리를 사용하여 XML 파일에서 변수 std::string strSystemName
의 값을 읽고있다XML에서 독일어 텍스트 읽기 및 PDF로 쓰기
#include <iostream>
#include "pugiconfig.hpp"
#include "pugixml.hpp"
using namespace pugi;
int main()
{
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file(FILEPATH);
xml_node root_node = doc.child("Report");
xml_node SystemName_node = root_node.child("SystemName");
std::string strSystemName = SystemName_node.child_value();
std::cout<<" The name of the system is: "<<strSystemName<<std::endl;
return 0;
}
. 변수를 읽은 후 화면에 인쇄하고 있습니다 (실제 프로젝트에서는 pdf 파일에 쓰고 있습니다). 문제점 : 디버깅하는 동안 이상한 문자가 XML 파일 (이미 UTF-8)에서 읽혀진 것으로 나타났습니다. 화면에 변수를 인쇄하거나 pdf에 넣으면 나타납니다.
중요 : 콘솔에 인쇄하는 것은 그리 중요하지 않습니다. 중요한 것은 또한 UTF-8 인코딩을 사용하는 PDF 파일에 제대로 배치하는 것입니다. 그러나 나는 변수를 std::string
에 저장하는 것이 어떻게 든 문제가되고 따라서 wrone 값이 PDF 작성자에게 전달된다고 생각합니다.
PS : 나는 VS2010에 C++ 11이없는 것을 사용하고 있습니다.
매크로 'PUGIXML_WCHAR_MODE'을 변경하면 ... PugiXML 라이브러리를 다시 빌드해야합니까? – skm
그렇게 생각합니다. 그러나 나는 그것이 도움이되지 않을지도 모른다라고 생각하고있다. 문제는'std :: string'을 사용하는 것이 아니라'std :: cout's'operator <<'를 직접 사용하는 것입니다. 'SystemName_node.print (std :: cout); 만 사용하면 어떻게됩니까? – StoryTeller
만약 내가 그것을 사용하면 .. 여전히' ├älpha –
skm