我有一個XML(以UTF-8)。我必須從中讀取使用PugiXML庫一std::string
變量的值。讀完值後,我將它打印在控制檯上,但在我的實際項目中,我必須將該值寫入PDF(使用LibHaru庫)。我MWE是以下幾點:閱讀從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;
}
我使用Pugixml庫一個XML文件中讀取的變量std::string strSystemName
值。在閱讀變量後,我將它打印在屏幕上(在我的實際項目中,我將它寫入一個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''operator <<'。當你只使用'SystemName_node.print(std :: cout);'時會發生什麼? – StoryTeller
如果我使用它..我仍然得到'├älpha ' –
skm