3

現在、次のような配列があります。

["screen", "left_side", "left_side", "right_side", "left_side", "right_side", "left_side", "right_side"]

これを何らかの方法で暗号化して、次のように URL として使用できるようhttp://www.site.com/app.html?array=...にしたいと考えています。これは、ユーザーがアレイを共有できるようにするためです。

URL文字列で使用できるように配列を暗号化し、後で復号化する方法はありますか?

4

3 に答える 3

6

atobおよびbtoa関数を使用できます。

myArray = ["screen", "left_side", "left_side", "right_side", "left_side", "right_side", "left_side", "right_side"]
btoa(JSON.stringify(myArray)) // "WyJzY3JlZW4iLCJsZWZ0X3NpZGUiLCJsZWZ0X3NpZGUiLCJyaWdodF9zaWRlIiwibGVmdF9zaWRlIiwicmlnaHRfc2lkZSIsImxlZnRfc2lkZSIsInJpZ2h0X3NpZGUiXQ=="

その後、元の配列に戻すことができます

array = JSON.parse(atob(str))

LZStringを含めると(コメントに記載されているように)、より短い文字列を取得できます。

var str = btoa(JSON.stringify(myArray)); // 132 characters
var str = LZString.compressToBase64(JSON.stringify(myArray)); // 72 characters
var str = LZString.compressToBase64(myArray.toString()); // 64 characters

解凍するには、

array = JSON.parse(LZString.decompressFromBase64(str));

フィドル

于 2013-08-10T05:44:26.760 に答える
0

これはあなたを助けるかもしれません...

<script>

var uri='http://www.site.com/app.html?["screen", "left_side", "left_side", "right_side", "left_side", "right_side", "left_side", "right_side"]';
var uri_encode=encodeURIComponent(uri);
document.write(uri_encode);
document.write("<br>");
document.write(decodeURIComponent(uri_encode));

</script>

Jsフィドル

于 2013-08-10T05:47:18.917 に答える
0

これはうまくいくはずです。

var a = ["スクリーン", "左サイド", "左サイド", "右サイド", "左サイド",
"right_side", "left_side", "right_side"];

var stringa = a.toString;
var encodeda = encodeURI(stringa);

次に、このように使用します

var site = "http://www.site.com/app.html?array=" + a;
于 2013-08-10T05:47:37.917 に答える