Windows為什麼用GBK而不是UTF 8?

時間 2021-05-29 22:18:59

1樓:小白龍

答:歷史原因,Windows支援GBK的時候UTF-8還沒有普及,而微軟是一家及其看重存量客戶和相容性的公司,形成了路徑依賴不能輕易改變。

題外話,UTF-8只是在儲存歐洲語言文字方面有優勢。由於相容ASCII,UTF-8儲存拉丁字母、數字、半形標點等字元使用1個位元組,儲存其他非拉丁字母的歐洲文字通常使用2個位元組,但儲存東亞文字,如漢字、日本假名、南韓諺文等,則使用3個位元組,少數不常見的字元則用4個位元組。而UTF-16對大多數常見語言文字統一使用2個位元組,少數字元使用4個位元組。

因此,UTF-8在東亞地區並非最佳儲存和傳輸方案,它的真正優勢在於實現Unicode的同時相容ASCII編碼。

2樓:Stony Wang

這個問題本身存在一些問題的。

正確的問題是,為什麼簡體中文windows 和 office 預設支援的文字檔案,以及檔名、console涉及的編碼,預設都是GBK?

因為是國家標準要求,否則不能在中國(大陸)市場售賣。

你把locale換成其他國家(地區)和語言,就不是預設GBK了。

3樓:乙隻會飛的豬

Windows用GBK是大部分中國產計算機的codepage設定的是936,也就是gbk編碼,但實際上系統核心中使用的UTF16-LE(小端序),所以說實際上系統中是存在兩種基礎的編碼,也對應兩個系統介面。

至於為什麼是UTF16,不是UTF8, 因為在 Windows 2000 的時候還沒有UTF8, 只有UTF16, UTF-8 是位元組編碼,也就是乙個位元組是乙個unit,但是每個位元組可以根據自己組合順序表示乙個unicode,這種編碼很小,也比較通用,利於網路傳輸,但是搜尋和查詢substring相對複雜一些, 因為在查詢之前需要parse成unicode 的 codepoint... 可能因為這些原因,微軟才一直沿用u16編碼吧。。。

4樓:

先問是不是……

win明明預設Unicode系列。

GBK系列請左轉找你家紅星幼兒園園長,問那些老頭為什麼搞出一批國際不相容的編碼,這鍋win不背。

另,如果是田園mac黨噴「win下都是gbk」,更給人一種「拿著錘子手機我買到宇宙第一神器了其他手機都預設gbk」的村炮感。

抱歉了老羅。

雖然我用mac。

5樓:小蝶驚鴻

歷史遺留問題,當年還沒發明UTF8;不過現在windows也已經改用UTF16了;

還有,別建立乙個「Windows為什麼用UTF16而不是UTF8」的問題。

6樓:llhe

命題本身就不成立。現在Windows系統預設是Unicode,記事本預設儲存格式也是utf-8,用過英文系統你會發現那些亂碼的軟體就是使用GBK編碼的,而且都是一些蹩腳的中國產軟體。

7樓:

windows NT 後,windows內碼就變成unicode即utf-16,個人認為這才是win比linux,mac,unix先進的地方。utf-8三個位元組表示乙個中文的效率明顯比unicode兩個位元組表示中文效率要低很多。

8樓:Belleve

Windows NT 的內碼明明是 UTF16LE 啊……因為當年,UTF-8 還不存在

Windows 9x 的內碼根語言走的……和 DOS 一樣

9樓:

在早期的時候,根據國家自動確定系統的預設編碼,是個很方便的技術.早個十來年,還有文章論述這種方式的便利性呢. 後來為了相容就保留下來了.

10樓:馮東

題目有錯誤。Windows不是預設 GBK。

對於接受字串,Windows 有兩套 API。

沿用 Win16 傳承下來。接受 char* 。

11樓:余天公升

1、GB2312、GB18030都是國家標準,GB2312出現的年代2023年當時也沒有什麼其他編碼標準,GBK則是相容GB2312的擴充套件方案,支援他也是理所應當的。

2、2023年發布的Windows 3.2就支援GB2312了,Unicode也是同期發布的,所以沒有機會率先支援Unicode了。

3、所以後來的延續都是為了相容,那麼多老系統都使用這個編碼了,所以也就沒有什麼理由更換了。

4、如果沒有朱總理,我覺得GBK不見得能那麼快地推廣開來。

為什麼用SQL而不是Excel VBA?

EXCEL辦公實戰 二者都會一些簡單說幾句 1 SQL叫做結構化查詢語言,聽名字就知道,對資料來源的要求挺高一般用於關係型資料庫查詢.2 Excel VBA VBA雖然是一門指令碼語言,但是好得是語言,其中一般的判斷 迴圈等一應俱全,靈活性要強SQL很多 3 SQL和VBA都有自己的最佳環境,我就是...

這處為什麼用 ,而不是 ?

某使用者 在此處表示 方式 送 用傳真傳送了。送 用郵件傳送了。包丁 切 用菜刀切了。在此處表示 動作的物件 送 傳送了傳真。送 傳送了郵件。您的疑問 您的疑問可能是來自於為什麼 和 可以替換 這是由於 和 恰巧是既可以表示 送 這一動詞的 方式 後接 又可以表示一種 送 這一動作的 動作的物件 後...

為什麼windows應用善於用執行緒,而unix用程序?例如oracle,httpd,他們在windows上用執行緒,unix用程序,unix也有執行緒呀,為什麼會有如此不同的設計實現?

Million 歷史遺留問題算乙個原因,另乙個原因大概是執行緒模型帶來的難以解決的資源競爭以及死鎖的問題。windows以客戶端程式為主,程式死鎖崩潰,大不了重啟就解決了,而且執行時間也不會很長,但是 nix上往往執行的是7x24的伺服器程式,對健壯性的要求很高,你乙個程式執行好好的,短時間內沒問題...