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



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 2 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2014年12月19日(金) 21:16 
現在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);

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0


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

登録日時: 2014年10月11日(土) 10:16
記事: 124
ファイル名はどのように文字化けしますか?
化け方から、何が起こっているか特定できる場合があります。

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


それと、以下のコードは何を意図されたものでしょうか。
コード:
decodeURIComponent(encodeURIComponent(fileName)),

_________________
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:35.0) Gecko/20100101 Firefox/35.0


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

All times are UTC + 9 hours


オンラインデータ

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


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

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