NOTES-產生具有BOM的UTF8編碼檔案 - 黑暗執行緒
文章推薦指數: 80 %
File.WriteAllText與StreamWriter在沒有指定Encoding.UTF8時,會產出UTF-8編碼但沒有BOM的檔案; 以下的範例中,只有F2.csv、F4.csv可以正確被Excel開啟, ...
上回有討論過Excel開啟CSV時的中文編碼問題,今天發現關於.NET處理BOM的幾個特性,再補充三則筆記:雖然預設UTF8Encoding的encoderShouldEmitUTF8Identifier參數預設為true,但GetBytes()的結果不會包含BOMFile.WriteAllText與StreamWriter在沒有指定Encoding.UTF8時,會產出UTF-8編碼但沒有BOM的檔案以下的範例中,只有F2.csv、F4.csv可以正確被Excel開啟,原因請見上回文章。
strings="牛,牪,犇";File.WriteAllText("B:\\F1.csv",s);File.WriteAllText("B:\\F2.csv",s,Encoding.UTF8);using(StreamWritersw=newStreamWriter("B:\\F3.csv",false)){sw.WriteLine(s);sw.Close();}using(StreamWritersw=newStreamWriter("B:\\F4.csv",false,Encoding.UTF8)){sw.WriteLine(s);sw.Close();}ShareonFacebookShareonTwitterShareonGoogle+EmailCommentsBethefirsttopostacommentPostacommentCommentNameCaptcha57-25=黑暗執行緒黑暗後花園OrcsWeb:WindowsServerHosting
延伸文章資訊
- 1NOTES-產生具有BOM的UTF8編碼檔案 - 黑暗執行緒
File.WriteAllText與StreamWriter在沒有指定Encoding.UTF8時,會產出UTF-8編碼但沒有BOM的檔案; 以下的範例中,只有F2.csv、F4.csv可以正確...
- 2開啟任務CSV檔時出現亂碼| TP辦公通-知識庫
「傳送者」須先將CSV檔儲存為具有BOM的UTF-8(若無此選項,請選UTF-8)編碼格式。 解決方式: 以微軟Excel開啟,並另存格式為CSV UTF-8 (逗點分隔)(*.csv) 格式:...
- 3utf-8編碼寫出csv檔案Excel開啟亂碼問題解決_U繡花同志
其實是UTF-8檔案的Unicode簽名BOM(Byte Order Mark) ... 在UCS 編碼中有一個叫做"ZERO WIDTH NO-BREAK SPACE"的字元,它的編碼是FEFF。
- 4[python] 解決生成csv file編碼問題(with BOM) - JysBlog
當我們使用UTF-8生成csv時,並未在header生成BOM訊息,所以Excel會依照Unicode編碼讀取,就會有亂碼產生。 實作. 下面是簡單的生成csv的python程式:.
- 5JAVA輸出帶BOM的UTF-8編碼的檔案 - 程式人生
微軟在UTF-8 中使用BOM 是因為這樣可以把UTF-8 和ASCII 等編碼明確區分開。 否則用Excel開啟CSV檔案有可能是亂碼的示例程式碼如下: response.