可能重複:
How can I detect the encoding/codepage of a text file檢測上傳文本文件的編碼(ASP.NET MVC)
我有一個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編碼的文件,所以我需要一種方法來檢測的編碼提交的文件。
有沒有任何知道這個文件的任何部分的內容?即如果你知道一個特定的字符串可能在那裏,你可以閱讀它,看看它是否可以找到,如果不嘗試使用不同的編碼。 –
@AndrasZoltan我只知道這些文件是CSV文件,既可以在Excel(Windows-1250)中創建,也可以從Google文檔(UTF)導出。我不知道這些文件的內容。 –
@mathieu在這種特定情況下(UTF-8或1250),答案不適用 – Esailija