次のコードがあります。
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/rtf; charset=UTF-8";
context.Response.Charset = "UTF-8";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.AddHeader("Content-disposition", "attachment;filename=lista_obecnosci.csv");
context.Response.Write("ąęćżźńółĄŚŻŹĆŃŁÓĘ");
}
生成された csv ファイルを開こうとすると、次のような動作が発生します。
- Notepad2 では、すべて問題ありません。
- Word の場合 - 変換ウィザードが開き、テキストを変換するよう求められます。それはどういうわけか大丈夫なUTF-8を提案します。
- Excel では、本当に混乱します。これらのポーランド語の文字は表示できません。
文字列の前にこれらの特別なエンコーディング情報文字を書きたかったのです。
context.Response.Write((char)0xef);
context.Response.Write((char)0xbb);
context.Response.Write((char)0xbf);
しかし、それは何の役にも立ちません。応答ストリームはそれを通常のデータとして扱い、別のものに変換します。
これについて助けていただければ幸いです。