"漢字"
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 ...