转义URL中的Base64字符串
Escape Base64 String in URL?
由于某些原因,我需要在URL中放入Base64编码的字符串,即
<script>
var URL = "localhost:8080/MyApp/order?z=AAAAAAAEJs4"
</script>
URL是由Java生成的,这里的问题是我只能使用Java使Base64编码的字符串对URL友好,但对javascript不友好,所以firebug给了我以下错误:
SyntaxError: unterminated string literal
显然Base64字符串中有字符需要转义。然而,我不能使用escape()
或URLencoding()
方法,因为请求将直接传递到控制器并由java代码操作,所以在这种情况下没有"下一页"。
那么,如何让它发挥作用呢?
如果您试图将z url属性转换为可理解的字符串/变量,则必须使用库进行转换。下面是一个链接,指向您必须在中加载的Javascript的base64库
http://www.webtoolkit.info/javascript-base64.html
您可能还需要一个库来访问url中的z属性。我推荐这个:
https://github.com/allmarkedup/purl
为了以防万一,这里有一个不需要依赖项的简短JS代码:
String.prototype.base64EncodeUrl = function () {
var str = this;
str = window.btoa(unescape(encodeURIComponent( str )));
return str.replace(/'+/g, '-').replace(/'//g, '_').replace(/'=+$/, '');
};
String.prototype.base64DecodeUrl = function () {
var str = this, str_pad = (str + '===');
str = str_pad.slice(0, str.length + (str.length % 4));
str = str.replace(/-/g, '+').replace(/_/g, '/');
return decodeURIComponent(escape(window.atob( str )));
};
相关文章:
- 正则表达式在字符串中找到base64
- 如何在jquery、javascript、HTML5中以base64字符串保存为(PDF、doc、xls、png.)
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- 将Byte数组转换为Angularjs中的Base64字符串
- 我的 base64 连接字符串有 = 字符.如何摆脱它们
- 转义URL中的Base64字符串
- 在jQuery中更新base64图像字符串时未进行图像刷新
- base64字符串使用Node.JS被写为无效图像
- 图像大小与其base64字符串转换长度之间的比率是多少
- 将内联SVG转换为Base64字符串
- Base64在PHP和JavaScript之间使用加号或与号字符对字符串进行编码
- 如何使用 javascript 将 png 转换为 base64 字符串
- Phonegap - 如何从base64字符串生成图像文件
- 从本地存储 base64 字符串设置背景图像
- 如何将 Base64 字符串转换为 javascript 文件对象,就像从文件输入表单一样
- 将 base64 编码的字节转换为在 Javascript 和 C# 中不同的字符串
- 带有 base64 字符串(数据 URI)的 HTML 图像标记
- 将 Base64 字符串从 AS3 返回到 Javascript.这是一个错误或功能(还是我错了?
- 在javascript中将base64图像转换为文件,或者如何使用jquery ajax传递一个大的base64字符串
- 在 JW 播放器开始之前不显示图像,如果 URL 包含字符串 base64