可能重复:
如何检测文本文件的编码/代码页
我有一个 ASP.NET MVC 应用程序。在我看来,我上传了一个文本文件并使用具有此签名的控制器方法对其进行处理
[HttpPost]
public ActionResult FromCSV(HttpPostedFileBase file, string platform)
我从上传的文件中获取一个流,file.InputStream
并使用标准 StreamReader 读取它
using (var sr = new StreamReader(file.InputStream))
{
...
}
问题是,这只适用于 UTF 文本文件。当我在 Windows-1250 中有一个文本文件时,字符会变得混乱。当我明确指定编码时,我可以使用 Windows-1250 编码的文本文件
using (var sr = new StreamReader(file.InputStream, Encoding.GetEncoding(1250)))
{
...
}
我的问题是,我需要同时支持 UTF 和 Windows-1250 编码文件,所以我需要一种方法来检测提交文件的编码。