字串編碼

2021-08-22 16:39:30 字數 1327 閱讀 8920

1.unicode 的編碼方式

編碼類似1小時和60分鐘的關係,本質的時間刻度還是相同的。

unicode 編碼有 utf-8、utf-16 和 utf-32 ,它們都是將數字轉換到程式資料的編碼方案。

utf-8:以位元組為單位。表示乙個字元時,能用乙個位元組就不用兩個或者三個位元組表示。

utf-16:以 16 位無符號整數為單位。表示乙個字元時,能用兩個位元組就不用四個位元組表示。

utf-32:以 32 位無符號整數為單位。

2.檔案開頭幾個位元組與檔案編碼的關係

位元組順序標記(bom)

編碼格式

說明ef bb bf

utf-8 with bom

ff fe

utf-16le

little endian

fe ff

utf-16be

big endian

ff fe 00 00

utf-32le

little endian

00 00 fe ff

utf-32be

big-endian

linux 下新建檔案編碼純英文為ascii text,中混英為 utf-8 unicode text

3.unicode 的 utf-16 與 utf-8

/* main.cpp unicode encoding in windows vs */

#include

#include

#include

int main(void)

else

}getchar();

return

0;}

(1) vs 預設定義 unicode 。

(2)_t 表示 unicode 雙位元組編碼 。

(3)unicode 巨集只是影響的 _t 宣告的字串,未使用 _t 宣告的使用 utf-8 編碼 。

4.簡單的編碼轉換

/* main.cpp unicode encoding in windows vs */

#include

#include

int main(void)

(1)cstring 字元陣列物件, unicode下為 utf-16 編碼。

(2)uses_conversion 分配編碼轉換空間,在迴圈體內可能引發棧溢位。

(3)a2t 單位元組轉雙位元組字串,t2a 雙位元組轉單位元組字串

字串與編碼

首先應該把位元組陣列看成是string的載體。dot net使用的字串string是unicode編碼的 它也是以unicode編碼的形式顯示字串。以下是用自己語言對幾個常用函式的說明 自己總結的,反正看不明msdn bytes system.text.encoding.unicode.getbyt...

Python字串編碼

在python中有些特殊的地方是存在兩種字串,分別為str和unicode字串,他們都繼承自basestring。如 s hello world s為str us u hello world us為unicode。使用help str 和help unicode 可以檢視各自說明,他們都有decod...

字串與編碼

這幾個月作手機簡訊的專案,碰到了很多字元編碼的問題,真頭痛。經過多番資料的搜尋 親手嘗試和高人的指點,現在好像沒那麼迷惘了。現作了一些總結跟大家分享 有誤之處請指點 首先應該把位元組陣列看成是string的載體。dot 使用的字串string是unicode編碼的 它也是以unicode編碼的形式顯...