我想创建一个可以检测文本文件的编码模式的方法。我知道那里有很多,但我确定我的文本文件是ASCII
,UTF-8
或UTF-16
。我只需要检测这三个。任何人都知道如何做到这一点?确定文本文件编码模式
2
A
回答
1
使用StreamReader来识别编码。
实施例:
using(var r = new StreamReader(filename, Encoding.Default))
{
richtextBox1.Text = r.ReadToEnd();
var encoding = r.CurrentEncoding;
}
4
首先,在二进制模式打开该文件并读入存储器。
对于UTF-8(或ASCII),请进行验证检查。您可以使用Encoding.GetEncoding("UTF-8", EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback).GetString(bytes)
解码文本并捕获异常。如果你没有得到,数据是有效的UTF-8。下面是代码:
private bool detectUTF8Encoding(string filename)
{
byte[] bytes = File.ReadAllBytes(filename);
try {
Encoding.GetEncoding("UTF-8", EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback).GetString(bytes);
return true;
} catch {
return false;
}
}
对于UTF-16,检查是否有BOM(FE FF
或FF FE
,这取决于字节顺序)。
相关问题
- 1. Python代码 - 不确定文本文件
- 2. 如何确定文本编码
- 3. 确定文件编码:Unicode或ANSI
- 4. 如何确定文件编码?
- 5. 确定文字的编码
- 6. 文本文件编码
- 7. 确定文本文件
- 8. 指定erb模板文件编码
- 9. Eclipse JSP:不正确的默认文本文件编码
- 10. 邮件文本编码
- 11. 如何正确编码一些文本
- 12. Textview正确显示编码文本
- 13. 准确的JSON文本编码检测
- 14. 如何确保我为编码文本的请求返回编码文本?
- 15. 文本文件编码为UTF_8?
- 16. 从VB.NET写入文本文件(编码)
- 17. 查找文本文件的编码
- 18. Readind utf8编码的文本文件
- 19. 如何更改文本文件编码?
- 20. 更改文本文件编码
- 21. 霍夫曼编码文本文件
- 22. 文本文件编码问题
- 23. 批量编码文本文件
- 24. 如何确定文件是否以二进制或文本模式打开?
- 25. 用于确定mpeg-4文件编解码器的php代码
- 26. 如何在文本文件的追加模式下编写
- 27. C#确定文本文件的名称
- 28. 如何编码为UTF文本文件与未知编码jquery
- 29. 修复非统一编码文本文件的编码
- 30. 确定文件是二进制文件还是文本文件
你知道他们是否有BOM(字节顺序标记)吗?如果是这样,您可以使用它来确定类型。 – alexn
您可以安全地忽略ASCII。任何有效的ASCII文件始终是一个有效的UTF-8文件(假设您使用的是正确的7位ASCII定义)。 – Douglas
如果没有物料清单,您就是SOL。 –