ASP.NETMVCアプリケーションがあります。私の見解では、テキストファイルをアップロードし、この署名を使用してコントローラーメソッドで処理します
[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でエンコードされたファイルの両方をサポートする必要があるため、送信されたファイルのエンコードを検出する方法が必要なことです。