原始檔編碼方式

2021-05-23 19:55:26 字數 1098 閱讀 9242

"漢字"

gbk編碼:ba ba , d7 d6

utf-8編碼:e6 b1 89, e5 ad 97

utf-16be編碼:6c 49, 5b 57

兩種常用編譯器gcc,cl中對unicode字面值的實現:

gcc中跟編碼方式轉換有關的三個編譯選項:

有了以上鋪墊,下面兩條語句的意義就很清楚了:

注1:gcc在4.4.0版本以前存在bug,不能編譯帶bom的utf-8原始檔。參見http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33415

注2:qt自帶的mingw gcc 4.4.0貌似有bug,不能支援-finput-charset選項;tdm gcc 4.5.1則沒有這個問題。

注3:即便tdm gcc 也不能支援utf-16,無論be或者le。症狀是好像只要包含了標頭檔案--無論是標準庫的標頭檔案還是qt的標頭檔案,就無法編譯通過,不包含標頭檔案則是可以編譯通過的。

cl 沒有提供類似gcc指定編碼方式的編譯選項,只能使用預設值或靠自動識別:

再看同樣的語句在 cl 下的行為:

對於原始檔的編碼方式為utf-16be,utf-16le, utf-8(帶bom):

對於其他編碼方式的原始檔(包括無bom的utf-8),實際上會被當做ansi編碼,即gbk:

有關cl對unicode的支援請參考:http://msdn.microsoft.com/en-us/library/xwy0e8f2(v=vs.90).aspx

c++1x

面對如此混亂的局面,c++1x提供了更多字串字面值表示法:

"string of char characters in some implementation defined encoding" - char

u8"string of utf8 chars" - char

u"string of utf16 chars" - char16_t

u"string of utf32 chars" - char32_t

l"string of wchar_t in some implementation defined encoding" - wchar_t

pycharm 原始檔 編碼格式

pycharm 4.5.3 版本 修改專案的編碼 按如下操作 選單 file settings editor file encodings 將ide encoding 和 project encoding 可以修改為自己想要設定的編碼格式 一般預設的project是gbk的編碼格式,可將此兩項全部設...

Python原始檔的字元編碼

預設情況下,python 原始碼檔案以 utf 8 編碼方式處理。在這種編碼方式中,世界上大多數語言的字元都可以同時用於字串字面值 變數或函式名稱以及注釋中 儘管標準庫中只用常規的 ascii 字元作為變數或函式名,而且任何可移植的 都應該遵守此約定。要正確顯示這些字元,你的編輯器必須能識別 utf...

改變 Python 原始檔的編碼格式

建議在python2.x中嘗試 coding utf 8 使用python2.x直譯器,可以看出源 不同編碼的時的區別 s0 中文 print repr s0 若是 coding gbk 則輸出 xd6 xd0 xce xc4 若是 coding utf 8 則輸出 xe4 xb8 xad xe6 ...