MozillaZine.jp フォーラム https://forums.mozillazine.jp/ |
|
添付ファイル名に全角スペースを含むと一部文字化けする https://forums.mozillazine.jp/viewtopic.php?f=3&t=15474 |
ページ 1 / 1 |
作成者: | Yosemite [ 2015年6月18日(木) 12:53 ] |
記事の件名: | Re: 添付ファイル名に全角スペースを含むと一部文字化けする |
Bug 1143644 - Downloading a file which name has U+3000, it will replace U+3000 to %U3000. https://bugzilla.mozilla.org/show_bug.cgi?id=1143644 このバグと関係があるかもしれません。 |
作成者: | kiki [ 2015年6月18日(木) 19:48 ] |
記事の件名: | Re: 添付ファイル名に全角スペースを含むと一部文字化けする |
当方では、再現しませんでした。 [環境:OS:Windows 7 Professional SP1 + Thunderbird 38.0.1 日本語版] 同じ「テスト ファイル 1.txt」という添付ファイル付きのメッセージの送受信でテストして みました。 ・メッセージ本文の文字コード:UTF-8、Shift_JIS 結果は、次のとおりです。 コード: User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050602000602060703030008" This is a multi-part message in MIME format. --------------050602000602060703030008 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 添付ファイル名スペース入りテスト [UTF-8] --------------050602000602060703030008 Content-Type: text/plain; charset=UTF-8; name="=?UTF-8?B?44OG44K544OI44CA44OV44Kh44Kk44OrIO+8kS50eHQ=?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0*=UTF-8''%E3%83%86%E3%82%B9%E3%83%88%E3%80%80%E3%83%95%E3%82%A1; filename*1*=%E3%82%A4%E3%83%AB%20%EF%BC%91%2E%74%78%74 a2lraQ0K5re75LuY44OV44Kh44Kk44Or5ZCN44OG44K544OIDQrjgYLjgYTjgYbjgYjjgYrj gIDjgYvjgY3jgY/jgZHjgZMNCg== --------------050602000602060703030008-- コード: Content-Type: multipart/mixed; boundary="------------010906030705010608040704" This is a multi-part message in MIME format. --------------010906030705010608040704 Content-Type: text/plain; charset=Shift_JIS Content-Transfer-Encoding: 8bit 添付ファイル名スペース入りテスト [Shift_JIS] --------------010906030705010608040704 Content-Type: text/plain; charset=UTF-8; name="=?UTF-8?B?44OG44K544OI44CA44OV44Kh44Kk44OrIO+8kS50eHQ=?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0*=Shift_JIS''%83%65%83%58%83%67%81%40%83%74%83%40%83%43%83%8B%20; filename*1*=%82%50%2E%74%78%74 a2lraQ0K5re75LuY44OV44Kh44Kk44Or5ZCN44OG44K544OIDQrjgYLjgYTjgYbjgYjjgYrj gIDjgYvjgY3jgY/jgZHjgZMNCg== --------------010906030705010608040704-- [参照スクリーンショット] 添付ファイルを「名前を付けて保存」でローカルに保存する 添付ファイル: [参照スクリーンショット] 保存する際の Explorer の保存ダイアログウィンドウ 添付ファイル: [参照スクリーンショット] ローカルに保存した添付ファイルのプロパティ 添付ファイル:
|
作成者: | kiki [ 2015年6月18日(木) 20:37 ] |
記事の件名: | Re: 添付ファイル名に全角スペースを含むと一部文字化けする |
添付ファイルを「開く」と「名前を付けて保存」では、操作手順が異なりますが、その違いに よって、結果が変化するのですね。 添付ファイルを「開く」のダイアログから「ファイルを保存する」を選ぶことで、再現しまし た。 添付ファイル: 添付ファイル: 添付ファイルのプロパティ.png [ 11.44 KiB | 表示数: 12495 回 ] とりあえずの回避方法は、 ・添付ファイルエリア枠の「保存」ボタンで保存する ・添付ファイルの右クリックで「名前を付けて保存」で保存 になりますね。 |
作成者: | meeyar [ 2015年6月18日(木) 21:37 ] | |||
記事の件名: | Re: 添付ファイル名に全角スペースを含むと一部文字化けする | |||
Bugzillaの検索と再現レポートありがとうございます。 助かりました。 kiki さんが書きました: 添付ファイルを「開く」と「名前を付けて保存」では、操作手順が異なりますが、その違いに よって、結果が変化するのですね。 添付ファイルを「開く」のダイアログから「ファイルを保存する」を選ぶことで、再現しまし た。 おっしゃる通りです。 最下部の添付ファイル名から「名前を付けて保存」を選ぶと問題が出ないことは把握済みだったのですが、「開く」の方は試していなかったのと、最初の添付画像ではトリミングで切り落としてしまっていたために報告が漏れていました。 最初の画像の青枠部分を選ぶと、いきなり「○○○を開く」のウィンドウが出るので、何らかの形で「○○○を開く」の表示が出た場合に再現するのだと思います。 Bugzillaにて「Thunderbirdでも再現します」ということで追記しました。 英語に自信がないのと、投稿直後に早速修正が入ってアレな感じですが。 (Comment3の時点では"open"の動作を未確認だったためです…)
|
作成者: | 偶然的通行人 [ 2015年6月19日(金) 07:34 ] |
記事の件名: | Re: 添付ファイル名に全角スペースを含むと一部文字化けする |
遅ればせながら、興味があったのでコメントさせていただきます。 当方でも次の環境条件下で再現しました。 Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 Thunderbird 38.0.1 上でどのような操作をすれば再現するかは、みなさんが指摘されているとおりですが、遅参の手みやげ替わりに少し追加テストしてみました。 【テスト条件】 Thunderbird 38.0.1 で、次のような条件のメッセージを作成します。 (A) 件名(Subject):テキスト ファイル 1 …… テキスト[全角スペース]ファイル[半角スペース]1 添付ファイル名:テキスト ファイル 1.txt …… 拡張子以外、Subject と同じ。 このメッセージソースは次のようになりました。 ---------------------------------------------------------------- (メッセージヘッダ中の Subject) Subject: =?UTF-8?B?44OG44Kt44K544OI44CA44OV44Kh44Kk44OrIDE=?= (添付パートのヘッダ) Content-Type: text/plain; charset=Shift_JIS; name="=?UTF-8?B?44OG44Kt44K544OI44CA44OV44Kh44Kk44OrIDEudHh0?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0*=iso-2022-jp''%1B%24%42%25%46%25%2D%25%39%25%48%21%21%25%55%25; filename*1*=%21%25%24%25%6B%1B%28%42%20%31%2E%74%78%74 ---------------------------------------------------------------- Thunderbird 31.7.0 で、(A)と同条件のメッセージ(B)を作成します。 (B) 件名(Subject):テキスト ファイル 1 …… テキスト[全角スペース]ファイル[半角スペース]1 添付ファイル名:テキスト ファイル 1.txt …… 拡張子以外、Subject と同じ。 これを eml ファイルとしてエクスポートし、Thunderbird 38.0.1 にインポートします。 Thunderbird 38.0.1 でメッセージソースを確認した結果は次のとおりです。 ---------------------------------------------------------------- (メッセージヘッダ中の Subject) Subject: =?ISO-2022-JP?B?GyRCJUYlLSU5JUghISVVJSElJCVrGyhCIDE=?= (添付パートのヘッダ) Content-Type: text/plain; charset=Shift_JIS; name="=?ISO-2022-JP?B?GyRCJUYlLSU5JUghISVVJSElJCVrGyhCIDEudHh0?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0*=iso-2022-jp''%1B%24%42%25%46%25%2D%25%39%25%48%21%21%25%55%25; filename*1*=%21%25%24%25%6B%1B%28%42%20%31%2E%74%78%74 ---------------------------------------------------------------- Subject および添付ファイルの name のエンコーディングだけが異なっています。 Thunderbird 38.0.1 上に存在する(A)(B)2つのメッセージに次の操作をおこないます。 (1)アタッチメントバー上に表示される添付ファイル名をクリック (これはコンテキストメニューの [開く] と同等です。文字化けが報告されている操作です。) (2)アタッチメントバー右端の [保存] ボタンをクリック (これはコンテキストメニューの [名前を付けて保存] と同等です。) (3)メッセージ本体を [名前を付けて保存] -> [ファイル] で eml ファイルとして保存 (4)メッセージ本体を ドラッグ&ドロップで eml ファイルとして保存 拡張子を除けば、件名(Subject)と添付ファイル名は同一です。 【結果】 これで、(Y)「テキスト ファイル 1」となるか、(N)「テキスト%u3000ファイル 1」となるかを、実地に試した結果が下記です。 ーーー(A)ー(B) (1)ーNーーーN (2)ーYーーーY (3)ーYーーーY (4)ーYーーーY ・添付ファイルの保存では、添付ファイル名のエンコーディングが UTF-8 でも、ISO-2022-JP でも、[開く] コマンドから実行(1)すると「テキスト%u3000ファイル 1.txt」となりました。 ・[名前を付けて保存] では(2)、どちらのファイル名にも問題は起こりませんでした。 ・メッセージそのものの保存では、どちらの保存手順(3)(4)でも、保存されたファイル名に文字化けは発生しませんでした。 エンコーディングの違いに関わらず、Thunderbird 38.0.1 で添付ファイルを [開く] の動作を経由すると、全角スペースを含んだ部分が、Unicode のコード自体(u+3000)に準じた文字列に置き換わってしまうようです。 【参考1】 Unicode の取り扱いに何らかの問題があるのなら、必ずしも全角スペース(U+3000)に限った話ではないかもしれないと思い、少し試してみました。 「文字化けなんてしない。.txt」というファイルを添付し、上記の発生条件と同じ手順を踏むと「文字化けなんてしない%u3002.txt」となりました。 他にも、この事例に合致する文字があるかもしれません。 【参考2】 比較として、「テキスト ファイル 1.txt」を Firefox 38.0.6 で開きました。 ロケーションバーには、 file:///C:/Users/********/Desktop/テキスト ファイル 1.txt と表示されます。 この状態から、[名前を付けてページを保存] を実行すると、ファイル名が「テキスト%u3000ファイル 1.txt」になります。 Firefox 38.0 系では、ダウンロード時のファイル名だけに起こる問題ではなさそうです。 同様の操作を Firefox 31.7.0 ESR で実行しても、元のファイル名のまま保存されます。%u3000 となる文字化けは起こりません。 簡単なテストの結果だけですが、少しは問題点の切り分けの足しになればいいな、と思います。 当面の回避策は、すでにご提案があるように、文字化けしない保存方法を選択することだと、ぼくも思います。 |
作成者: | meeyar [ 2015年6月19日(金) 19:54 ] |
記事の件名: | Re: 添付ファイル名に全角スペースを含むと一部文字化けする |
詳細かつ丁寧な検討をありがとうございます。 言いだしっぺなのに割と雑な検証だったので… 偶然的通行人 さんが書きました: 【Thunderbird 38.0.1 上に存在する(A)(B)2つのメッセージに次の操作をおこないます。 (1)アタッチメントバー上に表示される添付ファイル名をクリック (これはコンテキストメニューの [開く] と同等です。文字化けが報告されている操作です。) (2)アタッチメントバー右端の [保存] ボタンをクリック (これはコンテキストメニューの [名前を付けて保存] と同等です。) (3)メッセージ本体を [名前を付けて保存] -> [ファイル] で eml ファイルとして保存 (4)メッセージ本体を ドラッグ&ドロップで eml ファイルとして保存 添付ファイル名の表示部分が「アタッチメントバー」というのをすっかり失念していて、曖昧な表現になってしまっていました。 emlファイルとして保存した場合は問題が出ないのですね。 添付ファイルのみを、編集画面のアイコンをつかんでデスクトップなどにドラッグ&ドロップした場合には問題なく保存されているのは確認していました。 偶然的通行人 さんが書きました: エンコーディングの違いに関わらず、Thunderbird 38.0.1 で添付ファイルを [開く] の動作を経由すると、全角スペースを含んだ部分が、Unicode のコード自体(u+3000)に準じた文字列に置き換わってしまうようです。 Unicodeの問題かも? と思ったので、本文も含め全てUTF-8(Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit)で試してみましたが、問題が再現してしまいました。 (今まではContent-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bitで試していました) 偶然的通行人 さんが書きました: 【参考2】 比較として、「テキスト ファイル 1.txt」を Firefox 38.0.6 で開きました。 ロケーションバーには、 file:///C:/Users/********/Desktop/テキスト ファイル 1.txt と表示されます。 この状態から、[名前を付けてページを保存] を実行すると、ファイル名が「テキスト%u3000ファイル 1.txt」になります。 Firefox 38.0 系では、ダウンロード時のファイル名だけに起こる問題ではなさそうです。 こちらでも確認しました。 Thunderbirdだと、「○○○を開く」の画面が出なければいいんじゃない? と考えてましたが、Firefoxではもっと違うところに問題があるのかもしれませんね。 とりあえずは、再現条件と回避方法もはっきりしているので「↓保存」のアイコンor「名前を付けて保存」を選んで対処したいと思います。 皆さまありがとうございました。 |
ページ 1 / 1 | All times are UTC + 9 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |