成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解QT 中連接Mysql 亂碼解決方法

移動開發
本文介紹的是詳解QT 中連接Mysql 亂碼解決方法,對于亂碼的解決方法一般就是編碼出錯,先來看本文內容。

QT 中連接Mysql 亂碼解決方法是本文介紹的內容,QT連接mysql之后出現亂碼MySQL4.1及其以上版本中中文問題比較麻煩,有時候在QT中使用會出現問號或者亂碼,現在說明一下在Qt中如何正確地配合使用。

先在MySQL中建表,使用中文,一般情況下就兩種,GB(GB2312或者GBK)或者UTF8兩種。兩種的解決方法是相似的,這里我們以GBK為例說明。

一、數據庫和表以及表里的字符相關字段(varchar, char, text等)都要使用gbk_chinese_ci這種方式,不這樣做也可以,但這樣做,會省很多麻煩。

二、重新編譯Qt的MySQL驅動,需要修改src/sql/drivers/mysql/qsql_mysql.cpp文件。要修改的部分如下:***百零八行的codec函數,注意紅色加粗部分,是我修改增加的語句。

  1. tatic QTextCodec* codec(MYSQL* mysql)   
  2. {   
  3. return QTextCodec::codecForName("GBK");   
  4. #if MYSQL_VERSION_ID >= 32321   
  5. QTextCodec* heuristicCodec = QTextCodec::codecForName(mysql_character_set_name(mysql));   
  6. if (heuristicCodec)   
  7. return heuristicCodec;   
  8. #endif   
  9. return QTextCodec::codecForLocale();   
  10. }  

然后,重新編譯qt的mysql驅動,這里就不多說了,請查看Qt相關文檔

三、在Qt程序main函數中app后面開頭處加入下面兩句,加上這兩個是省得不必要的麻煩。

  1. QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));   
  2. QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));   
  3. //QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));  

四、在Qt數據庫連接后,運行SET NAMES 'GBK'語句(紅色部分)。

  1. db = QSqlDatabase::addDatabase("QMYSQL");   
  2. db.setHostName("localhost");   
  3. db.setDatabaseName("yourdatabase");   
  4. db.setUserName("yourusername");   
  5. db.setPassword("yourpassword");   
  6. db.open();   
  7. db.exec("SET NAMES 'GBK'");  

OK, 走過上面四步以后,我們就可以在程序中正確使用查看MySQL中的中文數據了。

但是如果你要直接通過SQL語句修改數據,則需要正確的把輸入的內容轉變為GB碼中,比如:

  1. QTextCodec *codec = QTextCodec::codecForName("GBK");   
  2. QString strOut = codec->fromUnicode(lineEdit->text()).data();   
  3. QString strSql = "UPDATE user SET uinfo = '" + strOut + "'";   
  4. db.exec(strSql);  

值得注意的是,如果在第三步中把第三行的codecForTr的注釋去掉,則就不用上面的字符串格式轉換了。

這里面最關鍵的一點就是修改qsql_mysql.cpp文件,因為它不能正確的設置codec內碼。

如果數據庫中的編碼使用的是UTF8,則把上面相關的部分改為UTF-8(Qt)或者UTF8(MySQL)就行了。

小結:關于詳解QT 中連接Mysql 亂碼解決方法的內容介紹完了,更多Mysql的內容,請參考編輯推薦,***希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2010-10-13 17:22:12

MySQL查詢亂碼

2009-07-02 13:32:56

JSP中文亂碼

2010-07-15 14:01:12

telnet亂碼

2009-07-01 18:14:36

JSP亂碼

2010-02-26 15:53:35

WCF套接字連接中斷

2011-07-04 10:09:19

Qt Creator BUG

2011-06-24 10:54:34

Qt Mysql

2009-06-25 15:06:20

Javadoc亂碼

2010-11-23 10:11:23

mysql建表亂碼

2011-03-01 15:38:44

Fireftp亂碼

2017-06-14 22:11:57

數據庫MySQL死鎖

2011-03-18 18:47:34

QtMySQL

2012-03-21 10:16:31

JavaJSP

2009-12-02 16:53:25

PHP發送郵件亂碼

2009-12-02 10:08:33

PHP mail()函

2009-11-26 15:42:18

PHP函數mail()

2010-02-24 16:30:52

WCF常見錯誤

2010-08-12 09:30:08

Flex內存泄露

2010-10-19 10:25:29

SQL Server連

2010-11-16 16:07:32

oracle用戶連接
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本视频一区二区三区 | 欧美精品区| 亚洲欧美在线观看 | 久久久久久国产 | 精品国产第一区二区三区 | 91麻豆久久久 | 黑人巨大精品欧美一区二区一视频 | 日韩成人免费视频 | 久久99国产精一区二区三区 | 99视频免费在线观看 | 欧美精品一区二区三区在线 | 午夜在线小视频 | 五月网婷婷 | 欧美专区在线视频 | 日本精品一区二区 | 日本成人在线观看网站 | 日韩免费视频一区二区 | 免费不卡av | 成人精品国产 | 国产精品久久久久久久久久妞妞 | 欧美日韩在线播放 | 久久777| 国产传媒在线观看 | 日本久久久一区二区三区 | 久久国产免费 | av入口| 在线观看午夜视频 | 免费观看a级毛片在线播放 黄网站免费入口 | 精品一区二区久久久久久久网站 | 成人免费视频网站在线看 | 国产一级片一区二区 | 欧美精品在线一区 | 羞羞在线视频 | 九九综合| 欧美精品在线播放 | 亚洲一区在线免费观看 | 青青草精品视频 | 久久91精品 | 男女爱爱福利视频 | 精品久久久久久亚洲国产800 | 一区欧美 |