sqlite設(shè)置編碼格式 sqlite3的中文排序問題如何解決?
sqlite3的中文排序問題如何解決?Sqlite默認(rèn)保存數(shù)據(jù)是用UTF8格式,而現(xiàn)有程序開發(fā)工具都是默認(rèn)GB2312的格式,所以你編程寫的中文不轉(zhuǎn)碼直接寫到庫里后,用任何數(shù)據(jù)庫工具看肯定都是亂碼。但
sqlite3的中文排序問題如何解決?
Sqlite默認(rèn)保存數(shù)據(jù)是用UTF8格式,而現(xiàn)有程序開發(fā)工具都是默認(rèn)GB2312的格式,所以你編程寫的中文不轉(zhuǎn)碼直接寫到庫里后,用任何數(shù)據(jù)庫工具看肯定都是亂碼。但是讀出來之后仍然是GB2312,所以顯示正常。反之如果你用數(shù)據(jù)庫工具寫中文,則默認(rèn)存UTF8格式,用程序讀出來就是亂碼。也就是你說的不可兼得。 如果要實現(xiàn)能夠編程和數(shù)據(jù)庫工具讀寫都正常,必須要轉(zhuǎn)碼。也就是說,保存時候,要把GB2312轉(zhuǎn)成UTF8,而讀出時候需要把UTF8在轉(zhuǎn)成GB2312。 網(wǎng)上有源程序可用,叫做CCodingConv的類,你搜一個源碼,在每次執(zhí)行SQL語句之前,將其轉(zhuǎn)換一下即可。將整個SQL語句進(jìn)行轉(zhuǎn)換,E文的會保持不變,而中文的會自動轉(zhuǎn)換成合適的編碼,執(zhí)行即可實現(xiàn)要求。