C#中Encoding.Unicode与Encoding.UTF8的区别
今天在園子首頁(yè)看到一篇博文-簡(jiǎn)單聊下Unicode和UTF-8,從中知道了UTF-8是Unicode的一種實(shí)現(xiàn)方式:
Unicode只是給這世界上每個(gè)字符規(guī)定了一個(gè)統(tǒng)一的二進(jìn)制編號(hào),并沒(méi)有規(guī)定程序該如何去存儲(chǔ)和解析。
可以說(shuō)UTF-8是Unicode實(shí)現(xiàn)方式之一...
在閃存中記錄這個(gè)收獲時(shí),@飛鳥(niǎo)_Asuka在回復(fù)中提了一個(gè)很好的問(wèn)題:“那么在選擇編碼方式的時(shí)候?yàn)槭裁磚nicode和utf8會(huì)是分別的兩個(gè)選項(xiàng)呢?”
在C#中,System.Text.Encoding.Unicode與System.Text.Encoding.UTF8分別是2種編碼方式。如果UTF-8是Unicode的一種實(shí)現(xiàn)方式,那C#中為什么將Encoding.Unicode作為與UTF8并列的一種編碼方式呢?
后來(lái)在stackoverflow上找到了答案:
Windows handles so-called "Unicode" strings as UTF-16 strings, while most UNIXes default to UTF-8 these days.?
原來(lái)Windows默認(rèn)的Unicode實(shí)現(xiàn)是UTF-16,所以C#中Encoding.Unicode就是UTF-16。
System.Text.Encoding.Unicode的注釋也證明了這一點(diǎn):
// // Summary: // Gets an encoding for the UTF-16 format using the little endian byte order. // // Returns: // An encoding for the UTF-16 format using the little endian byte order. public static Encoding Unicode { get; }C#中,Encoding.Unicode =?UTF-16 。
總結(jié)
以上是生活随笔為你收集整理的C#中Encoding.Unicode与Encoding.UTF8的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 动态行和列的表格,展现方式
- 下一篇: 去掉中文语言下 wget下载提示 英国中