UTF8與UTF8 without BOM之間的問題(轉(zhuǎn))

https://www.cnblogs.com/zhongru_tu/archive/2008/04/11/1147792.html


UTF8與UTF8 without BOM之間的問題

UTF-8 編碼的文件可以分為no BOM 和 BOM兩種格式划栓。

何謂BOM? "EF BB BF" 這三個字節(jié)就叫BOM,BOM的全稱叫做"Byte Order Mard".在utf-8文件中常用BOM來表明這個文件是UTF-8文件,而BOM的本意實在utf16中用來表示高低字節(jié)序列的掩蛤。在字節(jié)流之前有BOM表示采用低字節(jié)序列(低字節(jié)在前面)心傀,而utf8不用考慮字節(jié)序列,所以其實有無BOM都可以。UTF-8以字節(jié)為編碼單元兽叮,沒有字節(jié)序的問題萄喳。UTF-16以兩個字節(jié)為編碼單元卒稳,在解釋一個UTF-16文本前,首先要弄清楚每個編碼單元的字節(jié)序他巨。例如收到一個“奎”的Unicode編碼是594E充坑,“乙”的Unicode編碼是4E59。如果我們收到UTF-16字節(jié)流“594E”染突,那么這是 “奎”還是“乙”捻爷?

如果文件保存時,選擇了使用 BOM觉痛,那么就可能會出現(xiàn) headers already sent 的問題役衡。

因為 Web 服務(wù)器軟件可能不認識 BOM,所以就把 BOM 的兩個特殊字節(jié)當做字符發(fā)送給瀏覽器了薪棒。

這時再調(diào)用 session_start() 等函數(shù)手蝎,就會出現(xiàn) headers already sent 的問題榕莺。

所以解決此問題最根本的方法就是在保存 UTF8 編碼文件時,不要使用 BOM棵介。

微軟的記事本 Word 等只能正確打開含BOM的UTF8文件钉鸯,然后UltraEdit卻恰恰相反,回把BOMutf8文件 誤認為ascii編碼邮辽。

UTF-8的BOM是 EFBBBF唠雕,因為UE載入UTF-8文件會轉(zhuǎn)成Utf16,上述的EFBBBF 在Utf16中是FFFE(Unicode-LE的BOM)吨述,UltraEdit不認識BOM又加多一個BOM岩睁,所以有2個FFFE。文件就被它破壞了揣云。

當應(yīng)用程序的文件使用 UTF8 編碼時捕儒,在保存文件時,一定要注意 BOM 的問題邓夕。

那么如何將UTF8 without BOM轉(zhuǎn)換成UTF8呢刘莹?

using?(TextReader?input?=?new?StreamReader(new?FileStream(@"C:\Test.properties",?FileMode.Open),?Encoding.UTF8))

{

using?(TextWriter?output?=?new?StreamWriter(new?FileStream(@"C:\Test2.lmx",?FileMode.Create),?Encoding.UTF8))

{

int?BufferSize?=?8096;

char[]?buffer?=?new?char[i];

intlen;

while?((len?=?input.Read(buffer,?0,?i))?>?0)

{

output.Write(buffer,

0,?len);

}

input.Close();

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市焚刚,隨后出現(xiàn)的幾起案子点弯,更是在濱河造成了極大的恐慌,老刑警劉巖矿咕,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抢肛,死亡現(xiàn)場離奇詭異,居然都是意外死亡痴腌,警方通過查閱死者的電腦和手機雌团,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來士聪,“玉大人锦援,你說我怎么就攤上這事“颍” “怎么了灵寺?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長区岗。 經(jīng)常有香客問我略板,道長,這世上最難降的妖魔是什么慈缔? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任叮称,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓤檐。我一直安慰自己赂韵,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布挠蛉。 她就那樣靜靜地躺著祭示,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谴古。 梳的紋絲不亂的頭發(fā)上质涛,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音掰担,去河邊找鬼汇陆。 笑死,一個胖子當著我的面吹牛恩敌,可吹牛的內(nèi)容都是我干的瞬测。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼纠炮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了灯蝴?” 一聲冷哼從身側(cè)響起恢口,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎穷躁,沒想到半個月后耕肩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡问潭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年猿诸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狡忙。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡梳虽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出灾茁,到底是詐尸還是另有隱情窜觉,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布北专,位于F島的核電站禀挫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拓颓。R本人自食惡果不足惜语婴,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砰左,春花似錦画拾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酬核,卻和暖如春蜜另,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嫡意。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工举瑰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔬螟。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓此迅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親旧巾。 傳聞我的和親對象是個殘疾皇子耸序,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容