Gecko(Firefox)、WebKit(Safari、Chrome)およびOperaは、非標準のbtoa
をサポートしています。ベース64の文字列をエンコードするための関数です。UTF-8としてエンコードされた文字列を含む基本64文字列を取得するには、 encodeURIComponent
- unescape
トリックを使用してください。 encodeURIComponent
は文字列をUTF-8 URLとしてエンコードしますが、unescape
はそれぞれ%xx
を1文字としてデコードします。 btoa
には、必要なエンコーディングのバイナリ文字列が必要です。
var base64 = btoa(unescape(encodeURIComponent(data)));
window.open("data:text/plain;charset=UTF-8;base64,"+base64,"UTF-8 Text");
もちろん、これはIEでは機能しませんが、IE 10はBlob
-APIをサポートしていると思います。エンコーディングをどのように処理するかは誰が知っていますか?
PS:IEはwindow.open
データにできないようです:-urlsとにかく馬鹿馬鹿しい小さなURLの長さの制限があります。
PPS:これはChromeで私の作品:
var b = new Blob(["➀➁➂ Test"],{encoding:"UTF-8",type:"text/plain;charset=UTF-8"});
var url = URL.createObjectURL(b);
window.open(url,"_blank","");
はあなたが頭のタグでエンコーディングを宣言したことがありますか? http://tlt.its.psu.edu/suggestions/international/web/tips/declare.html – NoBugs
結果のドキュメントにメタ要素を追加すると、事実の後に何も行われず、<?xmlを追加することはできませんencoding = ...?>テキスト/プレーン文書への処理命令は、text/html型の非XML文書を生成するときに処理します。可能であれば、すでにロードされた後のドキュメントのエンコーディングに影響するかどうかは疑問です。 –
Firefox 8?それは夜間のビルですか?あなたは安定したFirefox 5でそれを試しましたか? – NoBugs