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



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - ファイルダウンロードの際に日本語が文字化けしてしまう
作成者 メッセージ
  記事の件名:  Re: ファイルダウンロードの際に日本語が文字化けしてしまう  引用付きで返信する
ファイル名はどのように文字化けしますか?
化け方から、何が起こっているか特定できる場合があります。

また、fileName の定義はそのままコード中に書かれているのでしょうか。
JavaScript のコード中に非ASCIIの文字を書く場合、以下のようにエスケープして書いた方が安全です。
コード:
var fileName="\u3042\u3044\u3046\u3048\u304AABCDE.jpg";


それと、以下のコードは何を意図されたものでしょうか。
コード:
decodeURIComponent(encodeURIComponent(fileName)),
投稿記事 Posted: 2014年12月19日(金) 21:44
  記事の件名:  ファイルダウンロードの際に日本語が文字化けしてしまう  引用付きで返信する
現在FireFox34.0.5でアドオン開発を行っているのですが、どうしてもわからないので質問させていただきます。

以前のFFでファイルをダウンロードするアドオンを作成して居ました。
その中で大体以下のような方法をとってファイルを保存するようにしていたのですが、
バージョンアップによりこの方法ではエラーが出るようになり新しい方法を利用することにしました。
//パーシスタンス
var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist);
//ファイルを保存する
persist.saveURI(sourceURI,null,refererURI,null,null,targetURI,privacyContext);

MDNにあったものを転用しテスト用のものをこしらえたのですが、
この場合fileNameに日本語が含まれると保存したファイル名が文字化けしてしまいます。
この解消の方法を教えていただきたいのです。

var fileName="あいうえおABCDE.jpg";
function downloadFile(httpLoc,referer,fileName)
{
Task.spawn(function ()
{
let list = yield Downloads.getList(Downloads.ALL);

let view = {
onDownloadAdded: download => console.log("Added", download),
onDownloadChanged: download => console.log("Changed", download),
onDownloadRemoved: download => console.log("Removed", download)
};
var Dir='C:\\';
yield list.addView(view);
try
{
let download = yield Downloads.createDownload({
source: httpLoc,
target: Dir+decodeURIComponent(encodeURIComponent(fileName)),
});
list.add(download);
try {
download.start();
alert("Now monitoring all downloads. Close the message to stop.");
} finally {
yield list.remove(download);
yield download.finalize(true);
}
} finally {
yield list.removeView(view);
}
}).then(null, Components.utils.reportError);
投稿記事 Posted: 2014年12月19日(金) 21:16

All times are UTC + 9 hours


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