C語言漢字gbk轉utf 8

2021-06-16 19:10:04 字數 1420 閱讀 4987

一、注意事項

1.請注意漢字內碼(對應字元為\xcc等)和列印出的轉義字元(\\xcc)的區別!!!!該問題導致我們程式除錯了差不多一整天!

見:c語言中轉義字元的使用

2.另外庫函式iconv會把傳入的引數指標移位,這是正常的、請不要認為是自己程式有問題。

3.我的終端是utf-8格式,對於其他編碼不能顯示。

二、看看code

1.test.c

#include #include #include int code_convert(char *inbuf,int inlen,char *outbuf,int outlen)

int main()

2.gcc test.c -o test

3../test

tk--------->>>>ret is -1

src is ̷��

dst is 譚凱

三、iconv命令的正確使用

1.錯誤做法

vi input

\xcc\xb7\xbf\xad

iconv -f gb2312 -t utf-8 input >output

vi output

\xcc\xb7\xbf\xad

原因:在程式設計時\x是乙個轉義字元,可以說明\xcc只是乙個十六進製制的字元;但在檔案中不可以這樣做!

2.正確做法

vi input

譚凱

iconv -f gb2312 -t utf-8 input >output

vi output

ì·¿
四、專案總結

當遇到底層上報有誤,即:把"\xcc"上報成"\\xcc"時(前者包含乙個字元『\xcc』,後者包含4個字元'\\' ,'x','c','c')可以用提取後邊兩個字元,完後在新增的方法解決。

解決方法如下:

1.**

#include #include #include #include long atox(char *s)

int main()

return 0;

}

2.gcc test.c -o test

./test

a is \xcc\xb7\xbf\xad

strlen(a) is 16

atoi(&a[2]) is 204

atoi(&a[6]) is 183

atoi(&a[10]) is 191

atoi(&a[14]) is 173

PHP中文GBK編碼轉UTF 8

iconv 和 mb convert encoding的區別 string mb convert encoding string str,string to encoding mixed from encoding 需要先enable mbstring 擴充套件庫,在 php.ini裡將 exten...

關於qt中文utf 8轉gbk

筆者經歷了糟心的兩天時間,說多了都是淚,希大家有所幫助,不再同乙個地方浪費時間。筆者的任務 從資料庫獲取utf 8編碼的含中文的字串,並在linux平台使用qt顯示在 中。筆者所遇問題 中文始終為亂碼,度娘上mian函式加類似下面的函式也並沒用 qtextcodec codec qtextcodec...

上傳檔案亂碼,GBK轉UTF 8

最近遇到這樣乙個問題,我上傳檔案沒有轉換字符集windows預設gbk,結果當我需要讀檔案顯示時用utf 8轉當然會出現亂碼,為了解決這個問題,我就將上傳時檔案一同也轉成utf 8了這樣就不會亂碼了,上傳時轉換字符集方法如下 string root filepath 上傳路徑 file rootfi...