如何检查TXT文本是不是ANSI编码格式的?

发布网友 发布时间:2022-04-21 23:40

我来回答

3个回答

热心网友 时间:2023-07-07 03:17

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

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

修改TypeList文件,即可识别

热心网友 时间:2023-07-07 03:17

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

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

热心网友 时间:2023-07-07 03:18

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com