Re: [問題] txt UTF-8 bom 的問題

看板java作者 (西亞加拉)時間11年前 (2014/07/08 09:13), 11年前編輯推噓3(305)
留言8則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《pupuliao (pupu)》之銘言: : code :http://goo.gl/NVlLN3 : 這是我自己寫得一支小程式 : 會去論壇抓文章後 存成txt檔 : 最近聽到有人反映說,如果丟回瀏覽器讀取,會變成亂碼 : 要重新設定編碼 : 我發現是 我好像沒有設定BOM : 所以想問一下,我要如何在寫入前,設定BOM : 謝謝 OTZ 檔案開頭寫入一個"\ufeff",這個「字」就是 BOM 然後你可能會收到另一群人反應「檔案開頭出現一個奇怪的亂碼字」 另,要丟給瀏覽器看的話,我會建議不要加 BOM,而是寫成 html 檔案 - 開頭加上 '<html><head><meta charset="UTF-8"></head><body>' - 中間把每個斷行(\n 或 \r\n)都替換成 '<br>' - 結尾加上 '</body></html>' -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.55.54 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1404782025.A.41D.html ※ 編輯: hiigara (61.227.55.54), 07/08/2014 09:14:10

07/08 13:38, , 1F
其實不會有亂碼字, 因為 \ufeff 實際上是 ZWSP
07/08 13:38, 1F

07/08 13:39, , 2F
Zero-width space 零寬度空白, 所以即使當成正常方式解碼
07/08 13:39, 2F

07/08 13:40, , 3F
也不會有亂碼字出現 (其實 BOM 會選這個字有一半也是這理由)
07/08 13:40, 3F

07/08 13:40, , 4F
如果是根本沒解碼的話全篇亂碼也不差這一個
07/08 13:40, 4F

07/08 13:44, , 5F
修正: \ufeff 叫做 ZWNBSP, zero-width non-breaking space
07/08 13:44, 5F

07/08 13:44, , 6F
不過那似乎是舊的 unicode 定義, 現在新版的 \ufeff 就單純
07/08 13:44, 6F

07/08 13:44, , 7F
只用來當做 BOM 用了
07/08 13:44, 7F

07/11 21:02, , 8F
07/11 21:02, 8F
文章代碼(AID): #1JkqN9GT (java)
討論串 (同標題文章)
文章代碼(AID): #1JkqN9GT (java)