{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

為什么Linux系統默認使用utf8編碼?

JerryCJerryC 回答0 收藏1
收藏問題

10條回答

wzyplus

wzyplus

回答于2022-06-28 11:21

GBK是微軟為簡體中文而制定的本地編碼,在工信部被案。各個國家或地區都會制定并使用各自的本地編碼,一些企業也會制定某個國家或地區的本地編碼(GBK就是微軟制定的簡體中文編碼)。一份用本地編碼編寫的文件在不指明所用的本地編碼時被打開就可能看到亂碼的現象。

為了解決本地編碼的亂象,統一編碼(UNICODE)和ISO這兩個組織都著手制定能容納各國文字而不沖突的文字編碼系統,目前這兩個組織相互承認,并且編碼兼容。

目前很多計算機系統已使用2字節(16位整數)或4字節(32位整數)的統一編碼,統一編碼只說明每個字符的編碼,但沒有說明如何將編碼存放入存儲介質上。

由于目前計算機系統有高字節在前和低字節在前兩種整數存放模式,因此采用高字節在前存放的數據在低字節在前的系統中就會出現異常,反之亦然。同時,我們知道許多編程系統在處理字符串時會將值為0的字節認為是字符串的結束,而無論是高字節在前還是低字節在前的字符串,都會在字符串中出現大量值為0的字節,這時傳統的字符串處理函數就無法使用了。

為了解決統一編碼如何存放的問題并兼容現有的字符串處理函數,就推出了UTF8編碼,這個編碼規定了統一編碼的存放方式,并且保證依然使用值為0的字節作為字符串的結束符,這樣就可以依然使用原有的字符串處理函數而不必新開發一套了。

當然UTF8也存在一個問題,這就是它是變長編碼。一個統一編碼的字符可能會編碼為一個字節、二個字節、三個字節、四個字節(版本1)或六個字節(版本2)。

評論0 贊同0
  •  加載中...
zoomdong

zoomdong

回答于2022-06-28 11:21

回答這個問題前先了解下什么叫字符集。

計算機里面只有高電平和低電平,用數字表達就是0101,二進制。二進制可以和八進制,十進制,十六進制轉換。

那么計算機如何表述文字呢,英文,簡體中文,繁體中文,日語,等文字呢?

各國都設計了不同的對應關系,將數字和文字對應起來。這就有了下面不同的字符集。

GB2312、GBK、GB18030 - 中文

BIG5 - 中文繁體

KS X 1001、EUC-KR、ISO-2022-KR - 韓文

JIS X 0208 - 日文


但以上每種字符集都只收錄了本國的文字,需要顯示不同國家的文字,還需要設置不同的字符集,很不方便。

這個時候UNICODE就出現了,統一了字符集,將各國的文字都編碼進去了。

但完整在計算機里面表述Unicode需要4個自己,這個時候就有了各種不同的編碼規則。

比如utf8,utf16,utf32之類的。其中utf8是最經濟實惠的(空間占用最少)。

這樣既實現了處理各國文字,有實現了不亂碼,無需轉碼之類的。

評論0 贊同0
  •  加載中...
keithyau

keithyau

回答于2022-06-28 11:21

咱也不敢說,utf支持中文,國內為什么不作為標準,一些專家自以為是,啥都自成一套,自己給自己挖坑,目光真是遠大

評論0 贊同0
  •  加載中...
txgcwm

txgcwm

回答于2022-06-28 11:21

window默認使用gbk,一個漢字占用2個字節的空間,gbk對中文和英語支持是可以,但別的很多語言的文字不能顯示。Linux默認使用UTF-8,一個漢字占用3個字節的空間,UTF-8又稱萬國碼,所有的語言的文字都能顯示。

互聯網上用的最多的是UTF-8,window平臺下很多軟件保存文本還是gbk格式的多。

評論0 贊同0
  •  加載中...
Travis

Travis

回答于2022-06-28 11:21

utf8是國際標準,適合西方和亞洲文字,當然中文也沒問題。國內銷售的軟件必須符合國標,所以必須符合gb18030標準,于是就只能gbk了,Windows本來是支持utf8的,為了符合中國國標只能gbk。

gbk和utf8可以互相轉換,但還是無法100%保證不亂碼。

評論0 贊同0
  •  加載中...
freewolf

freewolf

回答于2022-06-28 11:21

用UTF-8不用考慮轉碼問題,這對非英語系的開發者是好事。

評論0 贊同0
  •  加載中...
CarlBenjamin

CarlBenjamin

回答于2022-06-28 11:22

utf8是國際編碼,包括世界上大部分國家的字體編碼

評論0 贊同0
  •  加載中...
bergwhite

bergwhite

回答于2022-06-28 11:22

utf8定義了目前世界所有語言的編碼

評論0 贊同0
  •  加載中...
seanlook

seanlook

回答于2022-06-28 11:22

gb18030,gbk,unicode是字符編碼,是各個組織或者國家制定的針對字符(或者叫符號)的一種編碼方式。utf8是傳輸編碼,是為了解決unicode在英語世界存儲或者傳輸過程中,帶寬浪費的問題,兩者不是同一類標準,不可以互相比較

評論0 贊同0
  •  加載中...
djfml

djfml

回答于2022-06-28 11:22

自己用gbk也可以,想聯網utf8

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<