没有文件头的txt文件,如何判断是什么编码格式

2025-03-24 18:11:13
推荐回答(3个)
回答1:

txt格式分为四种编码:ANSI、Unicode、Unicode big endian、UTF-8,其中ANSI编码是没有文件头的,其他三种编码有文件头。

  • Unicode:feff

  • Unicode big endian:fffe

  • UTF-8:efbbbf

现在已知三种编码的文件头,使用链接文件类型识别

修改TypeList文件,即可识别

回答2:

一般txt文件都是有文件头的,无文件头的都是按ANSI编码来处理的,可有的UTF-8编码的txt文件也是没文件头的,如果不判断就直接读入就会出现显示为乱码。

没有文件头的txt文件,怎么判断是ANSI编码还是UTF-8编码格式呢?

回答3:

C#
//=2=获得文件编码格式的类
public class fileEncode
{//获得文件编码格式的类
public static System.Text.Encoding GetFileEncodeType(string filename)
{
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
Byte[] buffer = br.ReadBytes(2);
br.Close();
fs.Close();
if (buffer[0] >= 0xEF)
{
if (buffer[0] == 0xEF && buffer[1] == 0xBB)
{
return System.Text.Encoding.UTF8;
}
else if (buffer[0] == 0xFE && buffer[1] == 0xFF)
{
return System.Text.Encoding.BigEndianUnicode;
}
else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
{
return System.Text.Encoding.Unicode;
}
else
{
return System.Text.Encoding.Default;
}
}
else
{
return System.Text.Encoding.Default;
}
}
}//-------------class fileEncode Over