Pot.Base64.urlEncode

{String} Pot.Base64.urlEncode ({String} string)
{String} Pot.base64URLEncode ({String} string)

Pot.js で利用可能。 PotLite.js では利用できません。

string を Base64 URL エンコードして返します。

引数 string を URL / ファイル名 セーフな Base64 (RFC 3548) として エンコードして返します。

Pot.globalize() が適応されている場合、Pot.base64URLEncode() が base64URLEncode() で実行できます。

Base64 エンコードされた文字列が返ります。

var string = '(*>_<*)';
var result = Pot.base64URLEncode(string);
Pot.debug(result); // 'KCo-XzwqKQ=='
var string = '゚+。:.o・゚・┣¨キ┣¨キ☆・゚・';
var encoded = Pot.base64URLEncode(string);
var decoded = Pot.base64URLDecode(encoded);
debug(
  'string  = ' + string + '\n' +
  'encoded = ' + encoded + '\n' +
  'decoded = ' + decoded
);
// result:
//   string  = ゚+。:.o・゚・┣¨キ┣¨キ☆・゚・ 
//   encoded = 776fK--9oToub--9pe--n--9peKUo8Ko
//             77234pSjwqjvvbfimIbvvaXvvp_vvaU=
//   decoded = ゚+。:.o・゚・┣¨キ┣¨キ☆・゚・

Pot.base64URLEncode() には、いくつかのメソッドがあります。
deferred メソッドは、非同期で実行します。
非同期で実行することにより、巨大な文字列に対しても負荷を抑え実行することが可能です。

{Pot.Deferred} Pot.Base64.urlEncode.deferred ({String} string)
{Pot.Deferred} Pot.base64URLEncode.deferred ({String} string)

引数 string を Base64 URL エンコードします。
エンコードされた結果を引数に持つ Pot.Deferred インスタンス が返ります。
Pot.base64URLEncode.deferred() で実行できます。
結果からは then() などによりチェインを繋げることができます。

Pot.base64URLEncode.deferred.slow() のようにして速度の指定ができます。
指定できる名前は以下の表を参照ください。
デフォルトの速度は normal です。

値 / メソッド名 速度
limp 最も遅い
doze 遅い
slow 遅め
normal 通常
fast 速め
rapid 速い
ninja 最も速い

非同期実行の例:

var string = '(*>_<*)';
Pot.base64URLEncode.deferred(string).then(function(encoded) {
  Pot.debug(encoded); // 'KCo-XzwqKQ=='

  return Pot.base64URLDecode.deferred(encoded).then(function(decoded) {
    Pot.debug(decoded); // '(*>_<*)'
  });
});
var string = '゚+。:.o・゚・┣¨キ┣¨キ☆・゚・';
Pot.base64URLEncode.deferred(string).then(function(encoded) {
  return Pot.base64URLDecode.deferred(encoded).then(function(decoded) {
    Pot.debug(
      'string  = ' + string + '\n' +
      'encoded = ' + encoded + '\n' +
      'decoded = ' + decoded
    );
    // result:
    //   string  = ゚+。:.o・゚・┣¨キ┣¨キ☆・゚・
    //   encoded = 776fK--9oToub--9pe--n--9peKUo8Ko
    //             77234pSjwqjvvbfimIbvvaXvvp_vvaU=
    //   decoded = ゚+。:.o・゚・┣¨キ┣¨キ☆・゚・
  });
});