我在檔案開頭有一個帶有 UTF-8 BOM 的 XML 檔案,這阻礙了我使用讀取 UTF-8 檔案的現有代碼。
如何以簡單的方式從 XML 檔案中洗掉 BOM?
在這里,我有一個變數xmlfile的Byte型別,我轉換string。xmlfile包含整個 XML 檔案。
byte[] xmlfile = ((Byte[])myReader["xmlSQL"]);
string xmlstring = Encoding.UTF8.GetString(xmlfile);
uj5u.com熱心網友回復:
很棒的東西 DBC :) 與您的鏈接配合得很好。解決我的 xml 檔案開頭有一個 UTF-8 BOM 標記的問題。我只是添加了 memorystream 和 streamreader,它們會自動清理 BOM 元素的 xmlfile(htmlbytes)。對于現有代碼來說真的很容易實作。
byte[] htmlbytes = ((Byte[])myReader["xmlMelding"]);
var memorystream = new MemoryStream(htmlbytes);
var s = new StreamReader(memorystream).ReadToEnd();
uj5u.com熱心網友回復:
Encoding.GetString()有一個多載,它接受byte[]陣列中的偏移量。只需檢查陣列是否以 BOM 開頭,如果是,則在呼叫時跳過它GetString(),例如:
byte[] xmlfile = ((Byte[])myReader["xmlSQL"]);
int offset = 0;
if (xmlfile.Length >= 3 &&
xmlfile[0] == 0xEF &&
xmlfile[1] == 0xBB &&
xmlfile[1] == 0xBF)
{
offset = 3;
}
string xmlstring = Encoding.UTF8.GetString(xmlfile, offset, xmlfile.Length - offset);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/353490.html
上一篇:避免異步方法的事件委托重新創建
