C 判斷txt檔案編碼格式

2021-10-07 21:26:25 字數 1112 閱讀 2363

///

/// 獲取檔案的編碼格式

///

public class encodingtype

///

/// 通過給定的檔案流,判斷檔案的編碼型別

///

/// 檔案流

/// 檔案的編碼型別

public 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;

}///

/// 判斷是否是不帶 bom 的 utf8 格式

///

///

///

private static bool isutf8bytes(byte data)

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

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

else

charbytecounter--;}}

if (charbytecounter > 1)

return true;}}

C 判斷txt檔案編碼格式

記事本開啟txt檔案,然後另存,有四種編碼格式可供選擇,分別是 ansi 無格式定義 對於中文編碼格式是gb2312 unicode 文字裡前兩個位元組為ff fe 位元組流是little endian unicode big endian 文字裡前兩個位元組為fe ff 位元組流是big endi...

C語言判斷檔案編碼格式

功能 實現檔案編碼格式的判斷 通過乙個檔案的最前面三個位元組,可以判斷出該的編碼型別 ansi 無格式定義 第乙個位元組開始就是檔案內容 unicode 前兩個位元組為fffe unicode big endian 前兩位元組為feff utf 8 前兩位元組為efbb,第三位元組為bf inclu...

C語言判斷檔案編碼格式

功能 實現檔案編碼格式的判斷 通過乙個檔案的最前面三個位元組,可以判斷出該的編碼型別 ansi 無格式定義 第乙個位元組開始就是檔案內容 unicode 前兩個位元組為fffe unicode big endian 前兩位元組為feff utf 8 前兩位元組為efbb,第三位元組為bf inclu...