| 閱文時長 | | 0.46分鐘 | 字數統計 | | 798.4字符 |
| 主要內容 | | 1、引言&背景 2、使用C#寫入帶有/不帶有BOM頭的檔案? 3、對于讀取檔案時,避免BOM頭造成的例外, 4、宣告與參考資料 | ||
| 『C#·對于BOM頭之完全解決方案』 | |||
| 撰寫人 | | SCscHero | 撰寫時間 | | 2021/3/13 PM10:38 |
| 文章型別 | | 系列 | 完成度 | | 待完善 |
| 座右銘 | 每一個偉大的事業,都有一個微不足道的開始, | ||
一、引言&背景 完成度:100%
a) 應對問題
- 如何使用C#寫入帶有/不帶有BOM頭的檔案?
- 如何使用C#判斷檔案是否有BOM頭?
b) 應用場景
- 處理BOM頭的檔案,
- 對于讀取檔案時,避免BOM頭造成的例外,
c) 預備知識
- 需要了解 BOM頭是什么?,
二、使用C#寫入帶有/不帶有BOM頭的檔案? 完成度:100%
使用有參建構式,來確定是否使用BOM頭,如下代碼:
var utf8WithoutBom = new System.Text.UTF8Encoding(false);//使用建構式布爾引數指定是否含BOM頭,示例false為不含,
var utf8WithBom = new System.Text.UTF8Encoding(false);//使用建構式布爾引數指定是否含BOM頭,示例true為含,
using (var sink = new StreamWriter("WithoutBom.txt", false, utf8WithoutBom))
{
sink.WriteLine("Hello,SCscHero");
}
using (var sink = new StreamWriter("WithBom.txt", false, utf8WithBom))
{
sink.WriteLine("Hello,SCscHero");
}
三、對于讀取檔案時,避免BOM頭造成的例外, 完成度:100%
根據BOM頭的特性,我們可以使用判斷位元組流的方式,如下代碼:
var fileByte = System.IO.File.ReadAllBytes(@"TestBom.txt");
var isBom = isBomHeader(fileByte);
Console.WriteLine("是否含有Bom頭:{0}",isBom);
可以將判斷是否是BOM頭的代碼封裝成一個公用方法,如下代碼:
public static bool isBomHeader(byte[] bs)
{
int len = bs.Length;
if (len >= 3 && bs[0] == 0xEF && bs[1] == 0xBB && bs[2] == 0xBF)
{
return true;
}
return false;
}
四、宣告與參考資料 完成度:100%
原創博文,未經許可請勿轉載,
如有幫助,歡迎點贊、收藏、關注,如有問題,請評論留言!如需與博主聯系的,直接博客私信SCscHero即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/270410.html
標籤:C#
下一篇:巧用ffmpeg從視頻中截圖
