獲取檔案的編碼格式

2021-06-20 07:33:05 字數 1072 閱讀 9955

///

///類別名稱 :fileclass

///用途 :獲取檔案的編碼格式

///作者 :serein zhu

///datetime:2013/9/30

///目前版本:0.0.1

///用法或說明:獲取檔案的編碼格式

///

public class fileclass

private static system.text.encoding gettype(filestream fs)

;byte unicodebig = new byte ;

byte utf8 = new byte ; //帶bom

encoding reval = encoding.default;

binaryreader r = new binaryreader(fs, system.text.encoding.default);

int i;

int.tryparse(fs.length.tostring(), out i);

byte ss = r.readbytes(i);

if (isutf8bytes(ss) || (ss[0] == 0xef && ss[1] == 0xbb && ss[2] == 0xbf))

else if (ss[0] == 0xfe && ss[1] == 0xff && ss[2] == 0x00)

else if (ss[0] == 0xff && ss[1] == 0xfe && ss[2] == 0x41)

r.close();

return reval;

}private static bool isutf8bytes(byte data)

//標記位首位若為非0 則至少以2個1開始 如:110***xx...........1111110x 

if (charbytecounter == 1 || charbytecounter > 6)}}

else

charbytecounter--;}}

if (charbytecounter > 1)

return true;}}

檔案編碼格式

知道問題所在,還是沒有解決,又苦苦搜尋,終於在 stackoverflow 上找到靈感,可以把 open 的方式變為 二進位制,也就是下面 裡的 open filename,rb 這下好了,至少後面的read 可以通過。再之後就產生了以下 發現問題的路真心不好走,在此mark 下。coding ut...

Linux檢視檔案編碼格式及檔案編碼格式轉換

如果你需要在linux 中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。windows中預設的檔案格式是gbk gb2312 而linux一般都是utf 8。下面介紹一下,在linux中如何檢視檔案的編碼及如何進行對檔案進行編碼轉換。檢視檔案編碼 在linux中檢視檔案編碼可以...

獲取檔案編碼

此文章是從我自己iteye部落格弄過來的 獲取檔案編碼 param sourcefile return suppresswarnings private static string getfilecharset file sourcefile else if first3bytes 0 byte 0...