- - PR -
ファイルダウンロード時の文字コード
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-02-06 19:20
度々失礼します。
現在、Safari3.1.2で確認しているのですが、日本語ファイル名だと文字化けを起こします。 一応、クロスブラウザ対応で、IE6以上、FF3以上、Chrome0.3で確認していますが、SafairおよびFFで日本語名は文字化けを起こします。 Tomcat6を使っていますが、エンコードはUTF-8で指定しています。 String zipname = URLEncoder.encode("あああ", "Shift_JIS"); このようにShift-JIS & UTF-8でも試してみましたが、だめでした。 この場合どのように対応すればよいのでしょうか? ちなみに、DLファイルはストリームで返してます。 よろしくお願いします。 | ||||
|
投稿日時: 2009-02-06 20:44
私が調べた限りでは、Safariは今のところ非ASCIIのファイル名を正しく伝えることは不可能です。
Firefoxでは、UTF-8をMIMEのBエンコーディングにすればOKだったと思います。 | ||||
|
投稿日時: 2009-02-09 09:48
ありがとうございます。
今、DLさせる時、window.openで実行しstreamで返してます。 これがいけないのでしょうか? 例えば、必ずファイルを呼び出し、そこでこれら(日本語)の文字列を取得し、 セットすれば良いのでしょうか? Safariでも普通の画面遷移でデータの文字化けは起こっていないのですが・・。 何か良い解決策は無いでしょうか? | ||||
|
投稿日時: 2009-02-09 11:09
それらは関係ありません。 私ももう一度ぐぐって調べてみました。
だそうです。 | ||||
|
投稿日時: 2009-02-09 18:05
ありがとうございます。
望みを託し、教えていただいた後者で試してみます。 | ||||
|
投稿日時: 2009-02-10 11:45
追記です。
やっぱり、Safari(3.1.2)ではだめでした。 UTF-8で「開く」「保存」「キャンセル」の開くを押すと、 文字化けしない日本語ファイル名になるので、やはり 仲介のSafariがうまく変換できていないように思います。 >スフレさん ところで、「UTF-8をMIMEのBエンコーディング」とは、 どのように記述するのでしょうか? contentTypeをこのようにセットしましたが、Bエンコーディングと言うのはぐぐっても見当たらないのですが?PHP独自? "application/octet-stream; charset=UTF-8"; ご教授お願いできますでしょうか? | ||||
|
投稿日時: 2009-02-10 13:30
過去に何度も何度もそれこそ何度も挙がった問題なので、会議室を「日本語ファイル名」で検索すれば色々情報でてきますよ。
とりあえず、過去ログから http://oku.edu.mie-u.ac.jp/~okumura/php/filename.php ここらへんのページが分かりやすいのではないでしょうか? # 要するに、ブラウザによって扱い方が違う、ということ | ||||
|
投稿日時: 2009-02-10 13:39
ぐぐっても見当たらない?メールヘッダではお馴染みなんですが(メールの添付ファイル名では本来はアウト)。 http://www.google.co.jp/search?q=B%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP251JP251 |