九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
字符編碼問題-Windows平臺不同編碼文件長度與預(yù)想不同的問題

問題引入:

1、UTF-8中漢字占三個字節(jié) ASCII字符占一個字節(jié)

2、Unicode中所有字符一律占 兩個字節(jié)

3、GBK,GB2312,GB18030中漢字占兩個字節(jié) ASCII字符占一個字節(jié)

問題實例:

現(xiàn)在用Windows的記事本新建文件test.txt,輸入 a(回車) 。

分別另存為GBK,文件名為test1.txt;Unicode,文件名test2.txt;UTF-8,文件名test3.txt。

按理說,test1.txt的大小為'a\r\n'3個字節(jié) test2.txt的大小為 'a\r\n' 6個字節(jié) test3.txt的大小為 'a\r\n' 3個字節(jié)

但是實際上:

GBK

Unicode

UTF-8

(黑人臉問號??)

問題解決:

實際上:

GBK

Unicode

UTF-8

百度百科:

  • GBK文件中就是只有字符的值本身大小

  • Unicode文件中會多出 'FF FE' 開頭

注意:如果一個Unicode格式文檔的開頭為'FF FE', 表示小端(LittleEndian)

如果一個Unicode格式文檔的開頭為'FE FF', 表示大端(BigEndian)

小端 \r\n的字節(jié)序為' 0D 00 0A 00' (本文中test2.txt就是 小端)

大端 \r\n的字節(jié)序為' 00 0D 00 0A'

  • BOM(Byte Order Mark),字節(jié)順序標記,出現(xiàn)在文本文件頭部,Unicode編碼標準中用于標識文件是采用哪種格式的編碼。

在test3.txt中出現(xiàn)的'EF BB BF' 就是BOM

什么是BOM

BOM

使用Sumblime保存無BOM的UTF-8

無BOM的UTF-8

果然test4.txt沒有了BOM前綴

所以:test1.txt GBK 沒有前綴所以占 3個字節(jié)

test2.txt Unicode 有小端 'FF FE' 2個字節(jié) + 3 x 2 = 8個字節(jié)

test3.txt UTF-8 with BOM 有BOM 'EF BB BF' 3個字節(jié) + 每個英文1個字節(jié)x 3 = 6 個字節(jié)

總結(jié):

文本文件會比理論字符串的大小更大。

雖然文件中有這么多問題,但是,在各類編程語言中,“字符串”的編碼字節(jié)占用規(guī)律還是對的,比如GBK中一個漢字兩個字節(jié),且高位都是1,ASCII字符占一個字節(jié)。

編碼問題很坑爹,解決要謹慎!不過也遺留問題,Java中使用的Unicode是那種平面?

題外延生:ANSI(GBK,BIG5等都屬于ASCII擴展)

ANSI

本文是作者原創(chuàng),如有錯誤,歡迎指正

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python讀寫不同編碼txt文件
談?wù)刄nicode編碼,簡要解釋UCS、UTF、BMP、BOM等名詞
編碼匯總整理
UTF-8 GBK UTF8 GB2312 之間的區(qū)別和關(guān)系 | 前端設(shè)計交流 - Ded...
字符編碼問題摘要
編碼又見編碼
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服