查看完整版本: [-- Qt ODBC 操作excel文件,中文乱码问题 --]

QTCN开发网 -> Qt中文处理 -> Qt ODBC 操作excel文件,中文乱码问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

尘中远 2013-10-15 13:47

Qt ODBC 操作excel文件,中文乱码问题

由于excel文件很大,用QAxObject处理非常非常慢,用的是网上下载的ExcelEngine类。所以打算改用odbc,但是遇到了一个问题。
excel的sheet是中文命名的,如图所示
[attachment=11181]



结果,用odbc读出来变成
使用tables(QSql::AllTables); 函数
  1. ("'2013??10??5??15 58$'", "'???????? (root)$'")


于是我想难道是编码问题,就把它转换一下,转换的代码如下:

QStringList sheetNameLists = m_db.tables(QSql::AllTables);
qDebug() << sheetNameLists;
QList<QByteArray> code = QTextCodec::availableCodecs();
for(int j = 0; j < code.size(); ++j)
{
  qDebug() << code.value(j) << "-------------------------------------";
      for(int i = 0; i < sheetNameLists.size(); ++i)
  {
     QTextCodec *codec = QTextCodec::codecForName(code.value(j));
     QString  text_str = codec->toUnicode(sheetNameLists.value(i).toLatin1());
     qDebug() << text_str;
  }
}



运行后输出如下:

"success load"
("'2013??10??5??15 58$'", "'???????? (root)$'")
"UTF-8" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1208" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1209" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-5304" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-5305" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-13496" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-13497" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-17592" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-17593" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-65001" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"cp1208" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-UTF_8J" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"unicode-1-1-utf-8" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"unicode-2-0-utf-8" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"UTF-16" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ISO-10646-UCS-2" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-1204" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-1205" -------------------------------------
"㈧?????????"
"?????爨潯??"
"unicode" -------------------------------------
"㈧?????????"
"?????爨潯??"
"csUnicode" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ucs-2" -------------------------------------
"㈧?????????"
"?????爨潯??"
"UTF-16BE" -------------------------------------
"????????‵?"
"??????潯琩?"
"x-utf-16be" -------------------------------------
"????????‵?"
"??????潯琩?"
"UnicodeBigUnmarked" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-1200" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-1201" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-13488" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-13489" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-17584" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-17585" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-21680" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-21681" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-25776" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-25777" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-29872" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-29873" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-61955" -------------------------------------
"????????‵?"
"??????潯琩?"
"ibm-61956" -------------------------------------
"????????‵?"
"??????潯琩?"
"windows-1201" -------------------------------------
"????????‵?"
"??????潯琩?"
"cp1200" -------------------------------------
"????????‵?"
"??????潯琩?"
"cp1201" -------------------------------------
"????????‵?"
"??????潯琩?"
"UTF16_BigEndian" -------------------------------------
"????????‵?"
"??????潯琩?"
"UTF-16LE" -------------------------------------
"㈧?????????"
"?????爨潯??"
"x-utf-16le" -------------------------------------
"㈧?????????"
"?????爨潯??"
"UnicodeLittleUnmarked" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-1202" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-1203" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-13490" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-13491" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-17586" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-17587" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-21682" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-21683" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-25778" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-25779" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-29874" -------------------------------------
"㈧?????????"
"?????爨潯??"
"ibm-29875" -------------------------------------
"㈧?????????"
"?????爨潯??"
"UTF16_LittleEndian" -------------------------------------
"㈧?????????"
"?????爨潯??"
"windows-1200" -------------------------------------
"㈧?????????"
"?????爨潯??"
"UTF-32" -------------------------------------
"?????????"
"????懈???"
"ISO-10646-UCS-4" -------------------------------------
"?????????"
"????懈???"
"ibm-1236" -------------------------------------
"?????????"
"????懈???"
"ibm-1237" -------------------------------------
"?????????"
"????懈???"
"csUCS4" -------------------------------------
"?????????"
"????懈???"
"ucs-4" -------------------------------------
"?????????"
"????懈???"
"UTF-32BE" -------------------------------------
"????????"
"????????"
"UTF32_BigEndian" -------------------------------------
"????????"
"????????"
"ibm-1232" -------------------------------------
"????????"
"????????"
"ibm-1233" -------------------------------------
"????????"
"????????"
"ibm-9424" -------------------------------------
"????????"
"????????"
"UTF-32LE" -------------------------------------
"?????????"
"????懈???"
"UTF32_LittleEndian" -------------------------------------
"?????????"
"????懈???"
"ibm-1234" -------------------------------------
"?????????"
"????懈???"
"ibm-1235" -------------------------------------
"?????????"
"????懈???"
"UTF-7" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-65000" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"SCSU" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1212" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1213" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"BOCU-1" -------------------------------------
"???????? ?"
"??????$?"
"csBOCU-1" -------------------------------------
"???????? ?"
"??????$?"
"ibm-1214" -------------------------------------
"???????? ?"
"??????$?"
"ibm-1215" -------------------------------------
"???????? ?"
"??????$?"
"CESU-8" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-9400" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO-8859-1" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-819" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"IBM819" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"cp819" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"latin1" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"8859_1" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csISOLatin1" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso-ir-100" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO_8859-1:1987" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"l1" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"819" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"US-ASCII" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ASCII" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ANSI_X3.4-1968" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ANSI_X3.4-1986" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO_646.irv:1991" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso_646.irv:1983" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO646-US" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"us" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csASCII" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso-ir-6" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"cp367" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ascii7" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-28599" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ECMA-128" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"turkish8" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"turkish" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso-8859_10-1998" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO-8859-10" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso-ir-157" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"l6" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO_8859-10:1992" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csISOLatin6" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"latin6" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-921_P100-1995" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-921" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO-8859-13" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"8859_13" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-28603" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"cp921" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"921" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-IBM921" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso-8859_14-1998" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO-8859-14" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso-ir-199" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO_8859-14:1998" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"latin8" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso-celtic" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"l8" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-923_P100-1998" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-923" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ISO-8859-15" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"Latin-9" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"l9" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"8859_15" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"latin0" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csisolatin0" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csisolatin9" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"iso8859_15_fdis" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"cp923" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"923" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-28605" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-943_P15A-2003" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-943" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"Shift_JIS" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"MS_Kanji" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csShiftJIS" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-31j" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csWindows31J" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-sjis" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-ms-cp932" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"cp932" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-932" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"cp943c" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"IBM-943C" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ms932" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"pck" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"sjis" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-943_VSUB_VPUA" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-MS932_0213" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-JISAutoDetect" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-33722_P12A_P12A-2004_U2" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-33722" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-5050" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"EUC-JP" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"Extended_UNIX_Code_Packed_Format_for_Japanese" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csEUCPkdFmtJapanese" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"X-EUC-JP" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-33722_VPUA" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"IBM-eucJP" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-950-2000" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"Big5" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"csBig5" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-950" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-windows-950" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"x-big5" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1375_P100-2007" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1375" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"Big5-HKSCS" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"big5hk" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"HKSCS-BIG5" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-936-2000" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"GBK" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"CP936" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"MS936" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"windows-936" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1383_P110-1999" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"ibm-1383" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
"GB2312" -------------------------------------
"'2013??10??5??15 58$'"
"'???????? (root)$'"
…………………………



没有找到能正确显示的


请问各位有何解决方法????

挽手叙旧 2016-05-19 21:29
楼主说得对,顶!d=====( ̄▽ ̄*)b


查看完整版本: [-- Qt ODBC 操作excel文件,中文乱码问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled