免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版
打開APP
未登錄
開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服
開通VIP
首頁
好書
留言交流
下載APP
聯(lián)系客服
記事本的編碼問題
心之所指
>《supInsular》
2005.12.31
關(guān)注
但是由于不夠詳細(xì),筆者就這一問題又特地咨詢了放飛技術(shù)網(wǎng)的高翅工程師,高工非常熱心的給我們帶來了更加詳細(xì)的解釋:
在計(jì)算機(jī)中字符通常并不是保存為圖像,每個(gè)字符都是使用一個(gè)編碼來表示的,而每個(gè)字符究竟使用哪個(gè)編碼代表,要取決于使用哪個(gè)字符集(charset)。
在最初的時(shí)候,Internet上只有一種字符集——ANSI的ASCII字符集,它使用7 bits來表示一個(gè)字符,總共表示128個(gè)字符,其中包括了英文字母、數(shù)字、標(biāo)點(diǎn)符號等常用字符。之后,又進(jìn)行擴(kuò)展,使用8 bits表示一個(gè)字符,可以表示256個(gè)字符,主要在原來的7 bits字符集的基礎(chǔ)上加入了一些特殊符號例如制表符。
后來,由于各國語言的加入,ASCII已經(jīng)不能滿足信息交流的需要,因此,為了能夠表示其它國家的文字,各國在ASCII的基礎(chǔ)上制定了自己的字符集,這些從ANSI標(biāo)準(zhǔn)派生的字符集被習(xí)慣的統(tǒng)稱為ANSI字符集,它們正式的名稱應(yīng)該是MBCS(Multi-Byte Chactacter System,即多字節(jié)字符系統(tǒng))。這些派生字符集的特點(diǎn)是以ASCII 127 bits為基礎(chǔ),兼容ASCII 127,他們使用大于128的編碼作為一個(gè)Leading Byte,緊跟在Leading Byte后的第二(甚至第三)個(gè)字符與Leading Byte一起作為實(shí)際的編碼。這樣的字符集有很多,我們常見的GB-2312就是其中之一。
例如在GB-2312字符集中,“連通”的編碼為C1 AC CD A8,其中C1和CD就是Leading Byte。前127個(gè)編碼為標(biāo)準(zhǔn)ASCII保留,例如“0”的編碼是30H(30H表示十六進(jìn)制的30)。軟件在讀取時(shí),如果看到30H,知道它小于128就是標(biāo)準(zhǔn)ASCII,表示“0”,看到C1大于128就知道它后面有一個(gè)另外的編碼,因此C1 AC一同構(gòu)成一個(gè)整個(gè)的編碼,在GB-2312字符集中表示“連”。
由于每種語言都制定了自己的字符集,導(dǎo)致最后存在的各種字符集實(shí)在太多,在國際交流中要經(jīng)常轉(zhuǎn)換字符集非常不便。因此,提出了Unicode字符集,它固定使用16 bits(兩個(gè)字節(jié)、一個(gè)字)來表示一個(gè)字符,共可以表示65536個(gè)字符。將世界上幾乎所有語言的常用字符收錄其中,方便了信息交流。標(biāo)準(zhǔn)的Unicode稱為UTF-16。后來為了雙字節(jié)的Unicode能夠在現(xiàn)存的處理單字節(jié)的系統(tǒng)上正確傳輸,出現(xiàn)了UTF-8,使用類似MBCS的方式對Unicode進(jìn)行編碼。注意UTF-8是編碼,它屬于Unicode字符集。Unicode字符集有多種編碼形式,而ASCII只有一種,大多數(shù)MBCS(包括GB-2312)也只有一種。
例如“連通”兩個(gè)字的Unicode標(biāo)準(zhǔn)編碼UTF-16 (big endian)為:DE 8F 1A 90
而其UTF-8編碼為:E8 BF 9E E9 80 9A
最后,當(dāng)一個(gè)軟件打開一個(gè)文本時(shí),它要做的第一件事是決定這個(gè)文本究竟是使用哪種字符集的哪種編碼保存的。軟件有三種途徑來決定文本的字符集和編碼:
最標(biāo)準(zhǔn)的途徑是檢測文本最開頭的幾個(gè)字節(jié),如下表:
例如插入標(biāo)記后,連通”兩個(gè)字的UTF-16 (big endian)和UTF-8碼分別為:
FF FE DE 8F 1A 90
EF BB BF E8 BF 9E E9 80 9A
但是MBCS文本沒有這些位于開頭的字符集標(biāo)記,更不幸的是,一些早期的和一些設(shè)計(jì)不良的軟件在保存Unicode文本時(shí)不插入這些位于開頭的字符集標(biāo)記。因此,軟件不能依賴于這種途徑。這時(shí),軟件可以采取一種比較安全的方式來決定字符集及其編碼,那就是彈出一個(gè)對話框來請示用戶,例如將那個(gè)“連通”文件拖到MS Word中,Word就會彈出一個(gè)對話框。
如果軟件不想麻煩用戶,或者它不方便向用戶請示,那它只能采取自己“猜”的方法,軟件可以根據(jù)整個(gè)文本的特征來猜測它可能屬于哪個(gè)charset,這就很可能不準(zhǔn)了。使用記事本打開那個(gè)“連通”文件就屬于這種情況。
我們可以證明這一點(diǎn):在記事本中鍵入“連通”后,選擇“Save As”,會看到最后一個(gè)下拉框中顯示有“ANSI”,這時(shí)保存。當(dāng)再當(dāng)打開“連通”文件出現(xiàn)亂碼后,再點(diǎn)擊“File”->“Save As”,會看到最后一個(gè)下拉框中顯示有“UTF-8”,這說明記事本認(rèn)為當(dāng)前打開的這個(gè)文本是一個(gè)UTF-8編碼的文本。而我們剛才保存時(shí)是用ANSI字符集保存的。這說明,記事本猜測了“連通”文件的字符集,認(rèn)為它更像一個(gè)UTF-8編碼文本。這是因?yàn)?#8220;連通”兩個(gè)字的GB-2312編碼看起來更像UTF-8編碼導(dǎo)致的,這是一個(gè)巧合,不是所有文字都這樣??梢允褂糜浭卤镜拇蜷_功能,在打開“連通”文件時(shí)在最后一個(gè)下拉框中選擇ANSI,就能正常顯示了。反過來,如果之前保存時(shí)保存為UTF-8編碼,則直接打開也不會出現(xiàn)問題。
如果將“連通”文件放入MS Word中,Word也會認(rèn)為它是一個(gè)UTF-8編碼的文件,但它不能確定,因此會彈出一個(gè)對話框詢問用戶,這時(shí)選擇“簡體中文(GB2312)”,就能正常打開了。記事本在這一點(diǎn)上做得比較簡化罷了,這與這個(gè)程序的定位是一致的。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)
。
打開APP,閱讀全文并永久保存
查看更多類似文章
猜你喜歡
類似文章
存文本文件及其字符編碼
關(guān)于文本亂碼的問題
UNICODE與UTF8,UTF16的含義
ASCII、ANSI、UNICODE及UTF-8編碼
ASCII, GB2312, Unicode , UTF-8 - 靈感點(diǎn)滴
windows環(huán)境下unicode編程總結(jié)
更多類似文章 >>
生活服務(wù)
首頁
萬象
文化
人生
生活
健康
教育
職場
理財(cái)
娛樂
藝術(shù)
上網(wǎng)
留言交流
回頂部
聯(lián)系我們
分享
收藏
點(diǎn)擊這里,查看已保存的文章
導(dǎo)長圖
關(guān)注
一鍵復(fù)制
下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁面
先別劃走!
送你5元優(yōu)惠券,購買VIP限時(shí)立減!
5
元
優(yōu)惠券
優(yōu)惠券還有
10:00
過期
馬上使用
×