再次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 char *而不是const wchar_t。我试图修改TinyXml文件以返回wchar_t,但这导致了一些令人讨厌的错误。
我现在的问题是:有人知道如何使用tinyxml从xml文件中读取数据而不会丢失unicode字符吗?
提前谢谢,您的帮助一如既往地非常感谢。答案 0 :(得分:2)
我有wx_t(或WCHAR)版本的tinyxml2库(我将其转换为我的项目)
答案 1 :(得分:0)
SQLite始终使用UTF-8,因此请确保您的XML文件在编辑时保持UTF-8编码。
要强制TinyXml将XML文件读取为UTF-8,请使用LoadFile(filename, TIXML_ENCODING_UTF8)
。