字符集的選擇

2021-10-17 10:57:22 字數 2756 閱讀 9496

字符集的選擇

一:背景介紹

dicom特定字符集(0008,0005)

此標籤獲得不同的值就代表使用不同的語言進行解碼。

以下為多家ct廠商的(0008,0005)取值:

字符集:

unicode是字符集,ascii、gb2312、gbk、gb18030既是字符集也是編碼方式,utf-8只是編碼方式。

二:中文字符集介紹

世界通用字符集——utf

中文字符集——gb2312、gbk、gb18030

字符集的詳細介紹

一:utf-8

程式是把乙個位元組乙個位元組的來讀取,然後再根據位元組中開頭的bit標誌來識別是該把1個還是兩個或三個位元組做為乙個單元來處理.

• 0******x——如果是這樣的01串,也就是以0開頭後面是啥就不用管了xx代表任意bit.就表示把乙個位元組做為乙個單元.就跟ascii完全一樣.

• 10***xx 10******——如果是這樣的格式,則把兩個位元組當乙個單元

• 1110***x 10****** 10******如果是這種格式則是三個位元組當乙個單元.

而utf-8由於裡面有額外的標誌資訊,所有乙個位元組只能表示2的7次方128個字元,兩個位元組只能表示2的11次方2048個字元.而三個位元組能表示2的16次方,65536個字元.

由於"漢"的編碼27721大於2048了所有兩個位元組還不夠,只能用三個位元組來表示.

所有要用1110***x 10****** 10******這種格式.把27721對應的二進位制從左到右填充***符號,實際上也可以從從右到左填充,於是就出現了big-endian,little-endian的術語.big-endian就是從左到右,little-endian是從右到左.

例如「漢」字的unicode編碼是6c49。6c49在0800-ffff之間,所以肯定要用3位元組模板了:1110***x 10****** 10******。將6c49寫成二進位制是:0110 110001 001001,

用這個位元流依次代替模板中的x,得到:11100110 10110001 10001001,即e6 b1 89。二:gbk

二:gb18030

gb18030-2005漢字

如下表所示,gb18030-2005收錄了70244個漢字:

gb18030碼位分配

gb18030編碼採用單位元組、雙位元組和四位元組三種方式對字元編碼。

1、單位元組部分

本標準中,單位元組的部分收錄了gb/t 11383-1989的0x00到0x7f全部128個字元,與 ascii 編碼相容。

2、雙位元組部分

第乙個位元組的值從 0x81 到 0xfe,第二個位元組的值從 0x40 到 0xfe(不包括0x7f),與 gbk 標準相容。本標準中,雙位元組的部分收錄內容如下:

• gb 13000.1-1993的全部cjk統一漢字字元。

• gb 13000.1-1993的cjk相容區挑選出來的21個漢字。

• gb 13000.1-1993中收錄而gb 2312未收錄的我國台灣地區使用的圖形字元139個。

• gb 13000.1-1993收錄的其它字元31個。

• gb 2312中的非漢字符號。

• gb 12345 的豎排標點符號19個。

• gb 2312未收錄的10個小寫羅馬數字。

• gb 2312未收錄的帶音調的漢語拼音字母5個以及ɑ 和ɡ 。

• 漢字數字「〇」。

• 表意文字描述符13個。

• 對gb 13000.1-1993增補的漢字和部首/構件80個。

• 雙位元組編碼的歐元符號。

3、四位元組部分

第乙個位元組的值從 0x81 到 0xfe,第二個位元組的值從 0x30 到 0x39,第三個位元組從0x81 到 0xfe,第四個位元組從 0x30 到 0x39。

本標準的四位元組的部分,收錄了上述雙位元組字元之外的,gb 13000的cjk統一漢字擴充a、cjk統一漢字擴充b和已經在gb13000中編碼的我國少數民族文字的字元。

gb18030-2005最主要的變化是增加了cjk統一漢字擴充b。它還去掉了單位元組編碼的歐元符號0x80)。

gb18030有1611668個碼位,在gb18030-2005中定義了76556個字元。隨著我國漢字整理和編碼研究工作的不斷深入,以及國際標準iso/iec 10646的不斷發展,gb18030所收錄的字元將在新版本中增加。

4、注意

[iso / iec 10646]現在禁止使用除utf-8的最小長度編碼以外的任何內容。 utf-8允許多種不同的編碼,但是當用於按照iso 10646-1和10646-2(帶有副檔名)編碼unicode字元時,只有最小限度的編碼才是合法的。

dicom預設字元庫中字元的表示形式與預設字元庫,utf-8中的[iso / iec 10646],[gb 18030]和[gbk]的單位元組值相同。它也是7位us-ascii編碼。

[gbk]字符集是[gb 18030]字符集的子集,該字符集受其一位元組和兩位元組**點的限制。在此子集中,[gbk]字符集遵循與[gb 18030]完全相同的編碼規則。

mysql字符集 MySQL字符集選擇

一 怎樣選擇合適的字符集 對mysql資料庫來說,字符集很重要,因為資料庫儲存的資料大部分都是各種文字,字符集對資料庫的儲存,處理效能都會有所影響。主要考慮一下幾方面的因素 1.滿足應用支援語言的需求,應用處理各種各樣的文字,發布到使用不同語言的國家或地區,可以選擇unicode字符集,mysql的...

MYSQL字符集的選擇

字元 character 是各種文字和符號的總稱,包括各國家文字 標點符號 圖形符號 數字等。字符集 character set 是多個字元的集合,字符集種類較多,每個字符集包含的字元個數不同,常見字符集名稱 ascii字符集 gb2312字符集 big5字符集 gb18030字符集 unicode...

怎樣選擇合適的字符集

我們建議在能夠完全滿足應用的前提下,盡量使用小的字符集。因為更小的字符集意 味著能夠節省空間 減少網路傳輸位元組數,同時由於儲存空間的較小間接的提高了系統的性 能。有很多字符集可以儲存漢字,比如utf8 gb2312 gbk latin1 等等,但是常用的是 gb2312 和gbk。因為gb2312...