///
///類別名稱 :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...