私のasp.netアプリケーションは、Excelで開くCSVファイルとしてデータセットをエクスポートすることになっています。データセットには、英字に加えて、日本語の2倍の漢字が含まれています。Excelで開くためにCSVで日本語を正しくエンコードするためにはどのような文字セットが必要ですか?
ヘッダー、文字セット、およびコンテンツエンコーディングのさまざまな組み合わせを試しましたが、Excelでファイルを開き、日本語の文字を正しく表示するための適切な組み合わせが見つかりませんでした。
メモ帳でファイルを開いてUTF-8エンコーディングで保存すると、ファイルをExcelで開き、意図したとおりに日本語の文字を表示できます。したがって、それは可能でなければなりませんが、エクスポートされたファイルを開いてメモ帳に保存することなく、適切なヘッダーの組み合わせを見つけることができません。
Private Sub TestCSV()
Dim context As HttpContext = HttpContext.Current
context.Response.Clear()
context.Response.ClearHeaders()
context.Response.ClearContent()
context.Response.Cache.SetCacheability(HttpCacheability.NoCache)
context.Response.AddHeader("Content-Disposition", "attachment; filename=test.csv")
context.Response.ContentType = "text/csv"
context.Response.Charset = Encoding.UTF8.WebName
context.Response.Write("English,Japanese")
context.Response.Write(Environment.NewLine)
context.Response.Write("Test,日本語")
context.Response.End()
End Sub
このコードを動作させる助けがあれば、大歓迎です。
また、次のコード行をさまざまな組み合わせと注文で使用してみましたが、何も効果がありませんでした。
context.Response.BinaryWrite(Encoding.UTF8.GetPreamble())
context.Response.BinaryWrite(Encoding.GetEncoding("utf-16le").GetPreamble())
context.Response.Charset = Encoding.GetEncoding("utf-16le").WebName
context.Response.AddHeader("Content-Type", "text/csv; charset=utf-16")
context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250")
ありがとう!