url编码有个bug,不能直接用decodeURIComponent,如果遇到前面的$会报错。

decodeURIComponent("%") ----->Uncaught URIError: URI malformed

decodeURIComponent("%25") ----->%

  

decodeURLComponent(escape(’%’))

  

转载于:https://www.cnblogs.com/alone2015/p/5837493.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果不能使用 JavaScript 提供的原生 API:encodeURIComponent() 和 decodeURIComponent(),我们可以手动实现 UTF-8 编码和解码方法。以下是一个示例代码: ```javascript // UTF-8 编码 function utf8Encode(str) { let utf8Str = ''; for (let i = 0; i < str.length; i++) { const charCode = str.charCodeAt(i); if (charCode < 128) { utf8Str += String.fromCharCode(charCode); } else if (charCode < 2048) { utf8Str += String.fromCharCode((charCode >> 6) | 192); utf8Str += String.fromCharCode((charCode & 63) | 128); } else { utf8Str += String.fromCharCode((charCode >> 12) | 224); utf8Str += String.fromCharCode(((charCode >> 6) & 63) | 128); utf8Str += String.fromCharCode((charCode & 63) | 128); } } return utf8Str; } // UTF-8 解码 function utf8Decode(utf8Str) { let str = ''; let i = 0; while (i < utf8Str.length) { const charCode = utf8Str.charCodeAt(i); if (charCode < 128) { str += String.fromCharCode(charCode); i++; } else if (charCode < 224) { str += String.fromCharCode(((charCode & 31) << 6) | (utf8Str.charCodeAt(i + 1) & 63)); i += 2; } else { str += String.fromCharCode( ((charCode & 15) << 12) | ((utf8Str.charCodeAt(i + 1) & 63) << 6) | (utf8Str.charCodeAt(i + 2) & 63), ); i += 3; } } return str; } ``` 在以上代码中,utf8Encode() 函数将字符串编码为 UTF-8 格式,实现原理是遍历字符串中的每个字符,根据字符编码范围分别计算 UTF-8 编码,并将其拼接成一个新的字符串。 utf8Decode() 函数则将 UTF-8 格式的字符串解码为原始字符串,实现原理是遍历字符串中的每个字符,根据字符编码范围分别计算对应的 Unicode 字符,并将其拼接成一个新的字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值