資訊內容
c連接mysql中文亂碼
Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
1. 先上圖一張,看看什么是亂碼Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
2. 理解一下VC++中的字符串編碼
Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
在以前VC++6.0中默認的字符集是多字節字符集(MBCS:Multi-Byte Character Set),而VS2005及以后默認的字符集是Unicode,這樣導致以前在VC6.0中非常簡單實用的各類字符操作和函數在VS2010環境下運行時會報各種各樣的錯誤。Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
字符集可以通過項目屬性修改:項目屬性→配置屬性→常規→字符集。我的字符集(VS2013編碼環境)為:Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
注:CString在Unicode和多字節字符集下的區別:Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
CString 是基于 TCHAR 數據類型的。如果為程序的生成定義了符號 _UNICODE,則會將 TCHAR 定義為 wchar_t 類型(一個 16 位的字符編碼類型);否則,會將它定義為 char(普通的 8 位字符編碼)。于是,在 Unicode 下,CString 由 16 位字符組成。如果沒有 Unicode,它們則由 char 類型的字符組成。Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
3. 解決辦法Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
在C程序里向數據庫插入數據之前,應該加上這一句:Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
char * query = "set names 'GBK'"; mysql_query(con, query);Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
4. 為什么會出現亂碼?Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
在控制臺登錄mysql后輸入查詢語句:Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
Show variables like 'character%';Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
character_set_client:客戶端的字符集
Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
character_set_results:結果字符集Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
character_set_connection: 連接字符集Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
這三個系統參數的作用:Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
信息輸入路徑: client→connection→serverRx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
信息輸出路徑: server→connection→resultsRx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
故這幾個系統參數的值須相同,不然以不同的編碼方式傳送數據,若編碼方式不兼容,則容易造成亂碼的問題。Rx8少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

- 上一篇
python絕對值怎么計算
簡介在python中可以通過abs函數計算數字的絕對值,abs函數的使用語法是“abs(x)”,其中參數x表示數值表達式,該函數可以返回x的絕對值。推薦:《python視頻教程》Pythonabs()函數描述abs()函數返回數字的絕對值。語法以下是abs()方法的語法:abs(x)參數x--數值表達式
- 下一篇
PostgreSQL怎么查詢數據庫
簡介PostgreSQL怎么查詢數據庫在PostgreSQL中,SELECT語句用于從數據庫表中檢索數據。數據以結果表格的形式返回。這些結果表稱為結果集。語法:SELECT column1, column2..column&