一文详解JavaScript的转码方式

 更新时间:2023年09月07日 08:32:48   作者:编程三昧  
JavaScript 转码是指将 JavaScript 代码从一种编码方式转换为另一种编码方式,常见的转码方式包括 URL 编码和 Base64 编码,解码是前端比较常见的一种操作,本文就给大家讲讲JavaScript转码方式

解码是前端比较常见的一种操作。

特殊符号是否编码

  • escape: 不编码ASCII字母、数字、标点符号"@ * _ + - . /",对其他所有字符进行编码。
  • encodeURI: 不编码ASCII字母、数字、标点符号"; / ? : @ & = + $ , #",对其他所有字符进行编码。
  • encodeURIComponent: 对所有字符进行编码

转码结果

  • escape: 输出字符的Unicode编码值
  • encodeURI: 输出符号的utf-8形式,并且在每个字节前加上%
  • encodeURIComponent: 输出符号的utf-8形式,并且在每个字节前加上%

tips:

  • 但是我们知道,网页在提交表单的时候,如果有空格,则会被转化为+字符。服务器处理数据的时候,会把+号处理成空格。

注意点

为何解码最好解两次

例如笔者常用的解码方式

function decode(str) {
    var r = '';
    try {
        r = decodeURIComponent(decodeURIComponent(str));   
    }catch(e){
        try {
            r = decodeURIComponent(str);
        } catch(e) {
            try {
                r = unescape(str); //Unicode
            }catch(e) {
                r = str;
            }
        }
    }
    return r;
}
  • 为什么捕抓异常: 其实decodeURIComponent是会有时候会爆异常的..这个属于bug
  • 为什么要尝试两次编码、一次编码、和无编码: 因为防止服务端encode两次、一次、或者无编码
  • 为什么要最后unescape,因为只有这个方法能解析Unicode编码

到此这篇关于一文详解JavaScript的转码方式的文章就介绍到这了,更多相关JavaScript转码方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JS实现面包屑导航功能从零开始示例

    JS实现面包屑导航功能从零开始示例

    这篇文章主要为大家介绍了JS实现面包屑导航功能从零开始示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • JS文件上传时如何使用MD5加密

    JS文件上传时如何使用MD5加密

    这篇文章主要介绍了JS文件上传时如何使用MD5加密,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 前端常见的时间转换方法以及获取当前时间方法小结

    前端常见的时间转换方法以及获取当前时间方法小结

    在做开发时会对不同的时间格式进行转换,下面这篇文章主要给大家介绍了关于前端常见的时间转换方法以及获取当前时间方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • javascript实现将数字转成千分位的方法小结【5种方式】

    javascript实现将数字转成千分位的方法小结【5种方式】

    这篇文章主要介绍了javascript实现将数字转成千分位的方法,结合实例形式分析了5种常用的数字转换的常用方法,涉及字符串与正则操作的相关技巧,需要的朋友可以参考下
    2016-12-12
  • 浅谈JavaScript变量的自动转换和语句

    浅谈JavaScript变量的自动转换和语句

    下面小编就为大家带来一篇浅谈JavaScript变量的自动转换和语句。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Javascript中的Prototype到底是什么

    Javascript中的Prototype到底是什么

    Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言。接下来通过本文给大家介绍Javascript中的Prototype到底是啥的相关知识,感兴趣的朋友参考下
    2016-02-02
  • JS实现二叉查找树的建立以及一些遍历方法实现

    JS实现二叉查找树的建立以及一些遍历方法实现

    本篇文章主要介绍了JS实现二叉查找树的建立以及一些遍历方法实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • 你可能不知道的CORS跨域资源共享

    你可能不知道的CORS跨域资源共享

    这篇文章主要给大家介绍了关于CORS跨域资源共享的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用CORS具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 关于javascript解决闭包漏洞的一个问题详解

    关于javascript解决闭包漏洞的一个问题详解

    闭包在JavaScript高级程序设计(第3版)中是这样描述:闭包是指有权访问另一个函数作用域中的变量的函数,下面这篇文章主要给大家介绍了关于javascript解决闭包漏洞的一个问题的相关资料,需要的朋友可以参考下
    2022-11-11
  • 微信小程序实现发送短信验证码倒计时

    微信小程序实现发送短信验证码倒计时

    这篇文章主要为大家详细介绍了微信小程序实现发送短信验证码倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论