― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 6 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2014年6月12日(木) 15:31 
オフライン

登録日時: 2014年6月12日(木) 15:21
記事: 4
bugzillaに書こうかと思いましたが、まずはここに。

いつからだったかはっきり忘れましたが、Linux 環境での firefox 25 くらい以降、少なくともここしばらく 30, 29, 28 辺りだと
LANG=ja_JP.eucJP
と設定した環境でダウンロードファイルや表示しているページの保存を日本語ファイル名で保存しようとすると、
* 設定したLANG環境では文字化けしたファイル名での中身のあるファイル (おそらく UTF-8 で保存)
* 設定したLANG環境での正規のファイル名でサイズが 0 のファイル
の2つが出来上がります。おそらく日本語以外のマルチバイトでも同じになると思いますが、試してはいません。

コード:
$ ls -l
合計 114,688
-rw------- 1 karma users 110,879 6月 12日 15:28 ?????鴻??
-rw-r--r-- 1 karma users 0 6月 12日 15:28 テスト


これはinvalidな設定ですが、LANG=C で firefox を起動して、日本語ファイル名で保存しても 2 つファイルは出来上がりますので検証はできます。

関連するバグ報告とかありますかね?

_________________
Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2014年6月12日(木) 15:46 
オフライン

登録日時: 2014年6月12日(木) 15:21
記事: 4
UTF-8なエンコードのファイル名でもEUC-JPでも表示してくれそうなファイルマネージャ的ソフトでみると上記の例だとこんな感じに見えます。(ファイル添付します)


添付ファイル:
Screenshot.png
Screenshot.png [ 4.33 KiB | 表示数: 5019 回 ]

_________________
Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0
通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2014年6月12日(木) 18:05 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
Bug summary contains "file name", OS=Linuxで検索してヒットしたバグの中に、
「Linux default encoding(env LANG) is en_US.UTF-8, still is utf-8」なLinuxで、
UTF-8なページでファイルをダウンロードすると、
HTTPヘッダーで、ファイル名をRFC2047エンコーディングなど無しで、このケースだとGBKのバイナリーで送ってくるので、ファイル名が化ける、という「Bug 844038」がありました。
> Content-Disposition: attachment; filename="????.7z"; で、????がGBKバイナリー
で、$ LANG=zh_CN.GB18030 firefox とやったら、以下のようになった、と言っています。
> Test it again, this time download dialog can display file correctly,
> and also right in download panel,
> but on file system, it still "????.7z", and nautilus file manager warn it "invalid encoding".

Firefoxは、Web Consoleで(あるいはBrowser Consoleで)、HTTPヘッダーを見せてくれるはずですが、どのようなHTTPヘッダーが返ってきていますか?


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2014年6月12日(木) 18:26 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
tenforward さんが書きました:
LANG=ja_JP.eucJP
コード:
-rw------- 1 karma users 110,879 6月 12日 15:28 ?????鴻??
-rw-r--r-- 1 karma users 0 6月 12日 15:28 テスト

どちらが先に作られたかは不明ですが、
(1) ?????鴻??(UTF-8バイナリー)で、LANG=ja_JP.eucJPなファイルシステムにファイル作成を依頼して、そこにダウンロード、
(2) Firefoxの内部では、UTF-8⇒eucJPの変換が入って、eucJPな「テスト」を入手できるが、
  ?????鴻??(UTF-8バイナリー)という、LANG=ja_JP.eucJPなファイルシステム上のファイル名を
  eucJPの「テスト」に変えるのに失敗、
といった順かな。
ファイルI/Oをトレースできるモニターツール(WinだとProcess Monitor, MacだとOpenSnoopとか)で見てみると、何をしているかがもう少し見えてくるかもしれません。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2014年6月12日(木) 19:51 
オフライン

登録日時: 2014年6月12日(木) 15:21
記事: 4
ありがとうございます。

元々日本語のファイルでないもの (例えばOSSのtar.gzファイルをhttpで取得するような場合) でも、保存ダイアログでファイル名を日本語に変えたような場合でも同じようになりますので、844038 は関係ないように思いますが、いかがでしょう? 逆に日本語ファイル名を送ってきていても、ascii でファイル名付けて保存すれば問題ありませんし。(保存ダイアログにデフォルトで入るファイル名はちゃんと読めますし)

I/Oのトレースも考えてみますが、それだったらさっさとbugzillaに登録しちゃった方が楽かな (^_^;) クリティカルで使えないという程の問題ではないので。

_________________
Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2014年8月01日(金) 15:26 
オフライン

登録日時: 2014年6月12日(木) 15:21
記事: 4
bugzilla に報告しました (英語が怪しい :cry: ) >> https://bugzilla.mozilla.org/show_bug.cgi?id=1047223

_________________
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 6 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[54人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean