私はCSVファイルにメッセージをダウンロードするためのダウンロード機能を作成しました(コードは以下です)。 は今、私はこの見++メモ帳やメモ帳でそれを開くとき:NYé作成したfiledownloadがUTF-8であることを確認するにはどうすればいいですか? (BOMのないUTF-8ではない)
をø╬║►░êö
(それはところで、データベースには何かということです)さて、とき
それは言う、
éNY私はメモ帳でそれを開くと、A╬â•++êö
を 'A-ºがâ - ':私は、MS-Excelで開くことがこのことを示しています'BOMなしのUTF8'でエンコードされています。 私は(++メモ帳で)それをエンコードUTF-8には、すべてがうまくいく(つまり、Excelがあまりにも右の文字を示している)
しかし、どのように私は私のコードから作成したファイルであることを確認することができますUTF- 8?
これは私のコードです:
public ActionResult DownloadPersonalMessages()
{
StringBuilder myCsv = new StringBuilder();
myCsv.Append(new DownloadService().GetPersonalMessages());
this.Response.ContentType = "text/csv";
Response.AddHeader("content-disposition", "attachment; filename=PersonalMessages.csv");
Response.ContentEncoding = Encoding.UTF8;
Response.Write(myCsv.ToString());
Response.Flush();
Response.HeaderEncoding = Encoding.UTF8;
return Content("");
}
編集:
私の機能は今、この変換
UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(str);
でByteArray
を返し、私のダウンロードは今、このです:
Response.AddHeader("Content-Disposition", "attachment; filename=PersonalMessages.csv");
return File(new DownloadService().GetPersonalMessages(), "text/csv");
ありがとう、私のコードをSystem.Text.UTF8Encodingに変更しました。encoding = new System.Text.UTF8Encoding(true);しかしまだ運がありません... – Michel
あなたはgetbytesとすべてによって正しいトラックに私を設定しました。私は間違ったトラックにいたので、notepad ++はutf8ではなく、utf8に変換するとうまくいきました。もちろん、私の側ではutf8は必須条件ではありませんでした。私はunicodeencodingとtadaaでそれを試しました!出来た。あなたの考えをありがとう。 – Michel
FYI:何らかの理由により、コンストラクタパラメータが実際にBOMを出力することはありません。 '.GetPreamble()'の結果を手動で前に追加する必要があります。 – StriplingWarrior