程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql CAPI 接口 讀取中文亂碼的解決方案

mysql CAPI 接口 讀取中文亂碼的解決方案

編輯:MySQL綜合教程

 

最近的yymysqlsdk的開源項目裡,對中文的支持不到位,因此用了1.5天的時間,對中文處理的各個情況進行了分析。

 

 

 

1.首先確認你的mysql配置文件,my.ini (只針對windows)裡的配置,如沒有則添加

 

[client]

 

default-character-set=gbk (是為了,開發客戶端程序時,對中文的支持;如果此處設置為utf8,我沒有驗證過,稍後驗證,哈哈)

 

[mysql]

 

default-character-set=utf8

 

[mysqld]

 

default-character-set=utf8

 

2.數據庫編碼屬性,選擇utf8,我使用的是naticat mysql。

 

3.具體到表,右鍵查詢表信息-》ddl ,有沒有 看到 一句 “ENGINE=InnoDB DEFAULT CHARSET=latin1;”

 

對了,這就是設計表的時候,naticat 默認使用的編碼方式,請不要隨影更改此編碼方式,latin1是兼容對utf8的支持(瞎猜的)

 

4.然後就是用vc去開發客戶端程序了,在real_connect後,請執行 編碼設置,mysql_query(xxx,“set names latin1”);

 

5.看代碼吧,

 

view plain

int rows = mysql_num_rows(res); 

 

int fields = mysql_num_fields(res); 

 

for (int i=0;i<rows;i++) 

    MYSQL_ROW row = mysql_fetch_row(res); 

 

    unsigned long *lengths = mysql_fetch_lengths(res); 

 

    for (int j=0;j<fields;j++) 

    { 

        printf("%s\n",row[j]); 

 

 

 

6.此時輸出的就是utf8編碼的,中文

 

 

 

以上就是我的總結,如對您有幫助,我不勝榮幸。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved