私は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