最近在測(cè)試Linux下的ODBC方式訪問(wèn)Mysql數(shù)據(jù)庫(kù)的過(guò)程中,在使用測(cè)試程序讀取Mysql數(shù)據(jù)庫(kù)中的中文字符總是亂碼,在網(wǎng)上搜索了很多的關(guān)于Mysql數(shù)據(jù)庫(kù)的亂碼問(wèn)題的文章,都是要解決Mysql數(shù)據(jù)庫(kù)本身的編碼一致的問(wèn)題,我采用Mysql命令行的方式訪問(wèn)即:mysql -h sourceIP -u usrid -p pwd database,讀取表中的數(shù)據(jù)能夠正確顯示,但是通過(guò)ODBC方式的測(cè)試程序則顯示亂碼,經(jīng)過(guò)思考,發(fā)現(xiàn)問(wèn)題可能是ODBC數(shù)據(jù)源采用的字符集和數(shù)據(jù)庫(kù)的字符集不同引起的,故在odbc的數(shù)據(jù)源即/etc/odbc.ini(文件保存位置可能不同)中的Mysql數(shù)據(jù)源中增加了一條語(yǔ)句:
CHARSET = UTF8,則測(cè)試程序測(cè)試成功。
個(gè)人感想:Mysql數(shù)據(jù)庫(kù)中文亂碼問(wèn)題查找步驟:
1. 保證數(shù)據(jù)庫(kù)中中文數(shù)據(jù)插入或者通過(guò)文件導(dǎo)入時(shí)的字符集格式與Mysql數(shù)據(jù)庫(kù)的character_set_results的字符集設(shè)置一致,當(dāng)然這種字符集一定要支持中文格式
2. 上述格式保證以后如果讀取后還是亂碼,則查看你采用的訪問(wèn)數(shù)據(jù)庫(kù)的方式(如本例的ODBC)的字符集是否能夠設(shè)置,保證訪問(wèn)方式的字符集與數(shù)據(jù)庫(kù)字符集保持一致