何らかの理由で、xml ファイルからデータを正しく読み取ることができません。たとえば、"Schrüder" の代わりに "Schrüder" のようなものを取得します。
私のコード:
tinyxml2::XMLDocument doc;
bool open(string path) {
if(doc.LoadFile(path.c_str()) == XML_SUCCESS)
return true;
return false;
}
int main() {
if(open("C:\\Users\\Admin\\Desktop\\Test.xml"))
cout << "Success" << endl;
XMLNode * node = doc.RootElement();
string test = node->FirstChild()->GetText();
cout << test << endl;
return 0;
}
XML の一部:
<?xml version="1.0" encoding="UTF-8"?>
<myXML>
<my:TXT_UTF8Test>Schrüder</my:TXT_UTF8Test>
</myXML>
ANSI に変換し、エンコーディング タイプを「ISO-8859-15」に変更すると、正常に動作することに注意してください。
「LoadFile( filename, TIXML_ENCODING_UTF8 )」のようなものが役立つはずです。ただし、そうではありません (エラー: 引数が無効です。const char が必要です)。私は TinyXML2 の最新バージョンを持っています (たぶん?)。ほんの数分前にhttps://github.com/leethomason/tinyxml2からダウンロードしました。
何か案は?
編集:文字列を .xml または .txt ファイルに書き込むと、正常に動作します。Eclipse ide コンソールに問題がある可能性があります。とにかく、電子メールで文字列を送信しようとすると、同じ問題が発生します。MailSend スクリプトは次のとおりです。
bool sendMail(std::string params) {
if( (int) ShellExecute(NULL, "open", "H:\\MailSend\\MailSend_anhang.exe", params.c_str(), NULL, SW_HIDE) <= 32 )
return false;
return true;
}
次のようにメインメソッドで呼び出します。
sendMail("-f:d.nitschmann@example.com -t:person2@example.com -s:Subject -b:Body " + test);