原始檔用不同的編碼方式編寫,會導致**的執行結果不同。用ue編輯文件時,可以使用快捷鍵"ctrl + h"檢視文字的字元編碼(可以設定顯示什麼編碼,acii碼、gbk、big5、unicode等)。
在編譯程式時,可以指定字符集,檢視幫助資訊:man gcc, :/charset
-finput-charset=charset 表示原始檔的編碼方式, 預設以utf-8來解析
-fexec-charset=charset 表示可執行程式裡的字時候以什麼編碼方式來表示,預設是utf-8
如:gcc a.c -o a
gcc -finput-charset=gbk -fexec-charset=utf-8 a.c -o utf-8
參開資料:
1、 字元編碼筆記:ascii,unicode和utf-8
2、 utf-8, unicode, gb2312格式串轉換之c語言版
3、 字符集和編碼ii: fat/msdos/vfat
關於文字的編碼
我們知道在計算機中儲存的都是0和1的二進位製碼,那怎麼用這些數字來表達我們通常用的字元呢?人們通過編碼的方式人為的規定了用特定的數字對應特定的字元。這就是編碼。計算機是在歐洲發明的,剛開始就只有歐洲人使用,他們為了在計算機上表示他們常用的字元美國制定了ascii碼表,因為它們的字元比較少 ascii...
C 中關於文字編碼的問題
tchar tmptext 50 sprintf tmptext,d,d a,b textout hdc,x,y,tmptext,lstrlen tmptext char與wchar t char中存放的是多位元組型的字元,wchar t中存放的是雙位元組型的字元,tchar在定義了 unicode...
關於win上文字和linux上文字的編碼問題
windows的預設編碼為gbk,linux的預設編碼為utf 8 root node1 cat a filename就可以看到windows下的斷元字元 m 閒來無聊查詢了以下幾種轉換編碼字符集的方法 1 dos2unix filename 2 sed i s m g filename 3 vim...