日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > windows下文件編碼和讀寫注意

windows下文件編碼和讀寫注意

來源:程序員人生   發布時間:2015-05-04 10:24:57 閱讀次數:4054次

最近寫了1個小工具,主要實現自動搜索指定路徑下所有文本文件內容,并替換指定字符串,記錄下幾個容易出錯誤的地方。
1,fread讀出來的buffer寄存到string里,如果要搜索指定的字符串,比如“中華人民共和國”,首先要肯定文件的編碼格式是甚么?根據文件的編碼格式,對目標串進行編碼轉換后,才能用string.find去進行查找。
而如何判斷文件的編碼格式呢,windows下文本文件1般有兩種字符集,unicode和gbk,根據文件的前3個字節來決定該文件的編碼格式,這3個字節是 “EF BB BF”,如果前3個字節為這3個值,就默許為utf8編碼的,否則默許為gbk。

題外話:固然上面的判斷比較粗略,由于windows下也能夠使用utf16來編碼存儲文件,打開記事本,另存的時候,使用unicode來編碼,或unicode big endian來編碼。windows的記事本會在文件前面用BOM來存儲文件的編碼格式
UTF8編碼的BOM為 EF BB BF
utf16編碼的BOM 為FF FE
utf16 big endian為 FE FF ,
通常uft16也被叫做UCS編碼,通常在windows上我們講unicode編碼,就是指utf16編碼。也有1些術語稱之為寬字符,由于他使用兩個字節來存儲文字,即使是ascii碼,也使用兩個字節來存儲。

那末有人會問,難道單純根據前3個字節來判斷文件編碼格式不會有問題,固然會有問題了,比如你用notepad新建1個文本文件,寫入“聯通”兩個字,然后保存,再次打開,你會發現文件成亂碼了。
為啥呢,由于windows記事本把它當作了utf8編碼來辨認了,到了這里有人會問,不是說utf8都有BOM頭來標識這個是utf8編碼的文件么?沒錯,utf8并沒有強迫使用BOM頭,有BOM頭的utf8文件,也能夠轉換為utf8無bom編碼的格式,可使用notpad++測試下,因此不能notepad不能單純的依托BOM頭來判斷是不是是utf8編碼的,而要對文件中的數據進行簡單的編碼分析來肯定,正是這個緣由,才致使辨認出錯。
首先來看下utf8來的編碼結構,utf8是采取1⑶個字節對字符進行編碼,編碼字節數和unicode字符集有嚴格的對應關系。看下面的對應關系表
Unicode 編碼集                  utf8編碼結構
U0001 ― U007E                   0XXXXXXX
U0080 ― U07FF和U0000        110XXXXX  10XXXXXX
U0800 ― UFFFF                    1110XXXX 10XXXXXX 

聯通的gbk字符集是“C1 AA CD A8”
C1 AA 對應的2進制: 1100 0001, 1010 1010
CD AB 對應的2進制:  1100 1101,  1010 1000
請注意紅色部份,它和UTF8的編碼結構完全1致,因此才誤將其認為是utf8無BOM編碼的文件。可使用notepad++打開來查看這個文件的編碼格式


2,在windows下,換行使用的 來換行,也就是 0D 0A,所以使用2進制來查看文件的時候,會看到換行的地方有很多0D 0A,但是如果fopen的時候僅僅使用 “r”標記來讀文件,會讀不出來0D,必須使用“rb”標記來讀,一樣在寫文件的時候,也要用“wb”來寫,才能吧0D寫進去。


原文查看:http://www.seanyxie.com/windows%E4%B8%8B%E6%96%87%E4%BB%B6%E7%BC%96%E7%A0%81%E5%92%8C%E8%AF%BB%E5%86%99%E6%B3%A8%E6%84%8F/

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品一区二区三区免费观看 | 国产视频一区二区三区四区 | 亚洲精品一区二区三区中文字幕 | 五月婷婷丁香 | 国产高清在线精品一区二区三区 | 在线看日韩av | 黄色毛片免费看 | 国产精品视频久久久 | 免费黄色影片 | 日韩在线精品强乱中文字幕 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 99精品福利视频 | 精品视频在线免费看 | 看全色黄大色黄大片女图片第一次 | 91网站在线观看视频 | 日韩精品一区二区三区中文字幕 | 欧美日韩a| 丁香六月激情 | 日韩精品一区二区三区中文在线 | 亚洲一区二区av | 一区高清| 中文字幕中文字幕 | 国产精品视频播放 | 成人在线视频网站 | 91成人免费| 日韩一区二区三区免费 | 国产激情美女久久久久久吹潮 | 欧美小视频在线观看 | 亚洲欧洲精品成人久久曰影片 | 麻豆99| 日本精品久久久久久久 | 色婷婷av一区 | 国产激情网址 | 成人黄色大片 | av小次郎网站 | 国产精品一区二 | 欧美一区二区三区免费观看 | 日韩欧美自拍偷拍 | 日韩三级久久 | 日韩视频在线播放 | 在线免费成人 |