0

Unicode 文字が再び深刻な頭痛の種になっています。これが私がやろうとしていることです: 1) Sqlite テーブル (Unicode 文字を含む) を xml ファイルにエクスポートしています (うまく動作し、Unicode 文字は失われません) 2) それらの XML テーブルを編集後に再度インポートしようとしています- 正常に動作しますが、Unicode 文字が失われます。

xml ファイルを読み取るコードは次のとおりです。

wstring input;
TiXmlElement* root = doc.FirstChildElement();
// count number of rows in xml file
TiXmlElement* counter = root->FirstChildElement();
int totalRows = 0;

while(counter != NULL) {
    totalRows += 1;
    counter = counter->NextSiblingElement();
}

// import data
wchar_t firstChar;
int check, length;
wstring finalInput;
TiXmlElement* rowElement = root->FirstChildElement();
for (int a = 1; a <= totalRows; a++) {
TiXmlElement* columnElement = rowElement->FirstChildElement();
// clear insert statement
insert = start;

for (int b = 1; b <= columns; b++) {
    node = columnElement->FirstChild();
    text = node->ToText();
    // !!! here we have the problem data gets imported as a string !!!
    input = text->Value(); 

問題はその Value(); です。(tinyxml ファイルの関数) は、const wchar_t の代わりに const char* を返します。wchar_t を返すように TinyXml ファイルを変更しようとしましたが、厄介なエラーが発生しました。

私の質問は次のとおりです。ユニコード文字を失うことなく、tinyxml を使用して xml ファイルからデータを読み取る方法を知っている人はいますか?

よろしくお願いします。

4

2 に答える 2

2

私はtinyxml2ライブラリのwchar_t(またはWCHAR)バージョンを持っています(私のプロジェクト用に変換しました)

http://pastebin.com/VrgNknaa.cpp _

http://pastebin.com/NEy2jjM0 .h

于 2013-01-20T19:10:15.190 に答える
0

SQLite は常に UTF-8 を使用するため、編集中は XML ファイルが UTF-8 でエンコードされたままであることを確認してください。

TinyXml に XML ファイルを UTF-8 として読み込ませるには、LoadFile(filename, TIXML_ENCODING_UTF8).

于 2012-10-15T14:23:29.660 に答える