質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

Q&A

解決済

1回答

8844閲覧

Win10でファイルを出力するとファイル名が文字化けしていまう。

yamaguti

総合スコア185

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

0グッド

0クリップ

投稿2016/08/18 07:23

編集2016/08/18 09:35

内容は題の通りなのですが、win10でシステムから
Excelを出力するとファイル名が文字化けしてしまいます。
エンコードをすればなおるかもしれませんが、うまくコーディングが出来ません
どなたか教えて頂けませんでしょうか。
よろしくお願い致します。

C#

1 PdfName = string.Format("作業日報{0}", Common.CommonKbn.ExcelExtension.pdf);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2016/08/18 08:56 編集

くあわwin10ってなんですか? システムから出力ってどうやるんですか? C に見えませんが C# じゃないですか?
yamaguti

2016/08/18 09:08

見ての通りC#でございます。
Zuishin

2016/08/18 09:11

タグが C になっていますので直して下さい。
yamaguti

2016/08/18 09:13

すでに修正済みです。
Zuishin

2016/08/18 09:14 編集

修正されたのを確認しました。
alg

2016/08/18 09:22

ご提示のコードは、ファイル名を表す文字列を作っているだけのように見えます。(A)このファイル名が化けて出力される、ということですか?それとも、(B)このファイルに出力された内容が化けている、ということですか? もし(B)なのであれば、ファイルに出力している部分のコードを提示していただけますか。
yamaguti

2016/08/18 09:24

ファイル名が化けてしまします。ファイルの中身は問題ございません。 よろしくお願い致します。
alg

2016/08/18 09:33

では、ファイルの内容ではなくファイル名が化けるというように質問を編集していただけますか。この質問を見た人が全員ここのやり取りを見るとは限りませんので……。よろしくお願いします。
yamaguti

2016/08/18 09:36

alg様 承知致しました。
Zuishin

2016/08/18 11:12

くあわwin10 が修正されたのも確認しました。どうやってシステムから出力しているのかいまだに答えがありませんが、答えなくて結構です。
yamaguti

2016/08/18 11:22

>どうやってシステムから出力しているのかいまだに答えがありませんが 質問が抽象的過ぎます。
Zuishin

2016/08/18 11:24

全く同感ですね。質問が抽象的すぎます。システムから出力するというのは「あなたが」書いたんですよ。
ttyp03

2016/08/19 00:09

C#については詳しくないのですが「Common.CommonKbn.ExcelExtension.pdf」の部分って独自に定義しているものですか?であればこの定義箇所を提示した方がよいと思います。
退会済みユーザー

退会済みユーザー

2016/08/19 05:21

これは、ASP.NET つまり ブラウザで ファイルダウンロードさせたいときのファイル名に日本語を使いたい ということであっていますか?
alg

2016/08/20 06:51

「win10でシステムから Excelを出力する」の部分、どんなコード・どんな手順なのかを説明することはできますか?
guest

回答1

0

ベストアンサー

情報が少なすぎて環境が分からないので想像で回答します。
タグに ASP と ASP.NET の両方書いてありますが、ASP.NET だと仮定します。
ファイル名が化けやすいのはファイル名をShift-JISで扱うIEなので、WEBブラウザはIEだと仮定します。
ファイルのダウンロードは Response を使用した WriteFile か BinaryWrite で行っていると仮定します。

ファイル名が化ける場合の解決策としては、やはりファイル名をエンコードする方法が真っ先に挙げられます。例えば Server.UrlEncode や HttpUtility.UrlEncode です。

C#

1Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(PdfName));

C#

1Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(PdfName));

他にはResponseのヘッダーやコンテンツのエンコードを変更する方法が考えられます。
以下の「文字コード」の部分を "shift_jis" や "utf-8" や "utf-16" に変えます。

C#

1Response.HeaderEncoding = System.Text.Encoding.GetEncoding(文字コード); 2Response.ContentEncoding = System.Text.Encoding.GetEncoding(文字コード);

投稿2016/09/02 00:46

twck

総合スコア314

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問