我有一个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