亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Unicode和UTF-8有什么區別?

Unicode和UTF-8有什么區別?

慕工程0101907 2020-02-03 15:15:57
是真的unicode=utf16嗎?許多人都說Unicode是一種標準,而不是一種編碼,但是大多數編輯器實際上都支持另存為Unicode 編碼。
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

大多數編輯器實際上都支持另存為“ Unicode”編碼。

這是Windows不幸的錯誤命名。

因為Windows內部使用UTF-16LE編碼作為Unicode字符串的內存存儲格式,所以它認為這是Unicode文本的自然編碼。在Windows世界中,存在ANSI字符串(當前計算機上的系統代碼頁,受完全不可移植性的影響)和Unicode字符串(內部存儲為UTF-16LE)。

所有這些都是在Unicode的早期設計的,當時我們才意識到UCS-2還遠遠不夠,而UTF-8才被發明出來。這就是Windows對UTF-8的全面支持差的原因。

這種誤導的命名方案成為用戶界面的一部分。使用Windows的編碼支持來提供多種編碼的文本編輯器會自動并不合適地將UTF-16LE描述為“ Unicode”,而將UTF-16BE(如果提供)描述為“ Unicode big-endian”。

(其他自己進行編碼的編輯器,例如Notepad ++,則沒有此問題。)

如果讓您感覺更好,“ ANSI”字符串也不基于任何ANSI標準。


查看完整回答
反對 回復 2020-02-03
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

正如拉斯穆斯(Rasmus)在他的文章“ UTF-8和Unicode之間的區別?”中所述。(鏈接已固定):

如果被問到“ UTF-8和Unicode有什么區別?”的問題,您會自信而簡短地回答嗎?在當今國際化的今天,所有開發人員都應該能夠做到這一點。我懷疑我們中的許多人不應該理解這些概念。如果您覺得自己屬于這個類別,則應該閱讀有關字符集和編碼的簡短介紹。

實際上,比較UTF-8和Unicode就像比較蘋果和橘子:

UTF-8是一種編碼-Unicode是一個字符集

字符集是具有唯一數字的字符列表(有時將這些數字稱為“代碼點”)。例如,在Unicode字符集中,A的數字為41。

另一方面,編碼是一種將數字列表轉換為二進制以便可以存儲在磁盤上的算法。例如,UTF-8將像這樣轉換數字序列1、2、3、4:

00000001 00000010 00000011 00000100

現在,我們的數據已轉換為二進制,現在可以保存到磁盤。

現在都在一起了

假設應用程序從磁盤讀取以下內容:

1101000 1100101 1101100 1101100 1101111

應用程序知道此數據代表使用UTF-8編碼的Unicode字符串,并且必須向用戶顯示為文本。第一步是將二進制數據轉換為數字。該應用程序使用UTF-8算法對數據進行解碼。在這種情況下,解碼器返回以下內容:

104 101 108 108 111

由于應用程序知道這是Unicode字符串,因此可以假定每個數字代表一個字符。我們使用Unicode字符集將每個數字轉換為相應的字符。結果字符串為“ hello”。

結論

因此,當有人問您“ UTF-8和Unicode有什么區別?”時,您現在可以放心地回答簡短而精確的問題:

無法比較UTF-8(Unicode轉換格式)和Unicode。UTF-8是一種用于將數字轉換為二進制數據的編碼。Unicode是用于將字符轉換為數字的字符集。


查看完整回答
反對 回復 2020-02-03
  • 3 回答
  • 0 關注
  • 525 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號