切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
HTML
正则表达式
Json
包管理工具
vite
CSS
XPath
JavaScript
Jquery
less
ES6
Vue
React
vue 3
Layui
editor.md
sea.js
Zepto.js
mysql.js
mssql.js
NodeJs
Express
前端template
YAML
杂项
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
前端
JS 常用编码类 window API
[TOC] ## 1. 编码 ### 1.1. base64编码与解码 btoa()将内容进行base64编码,这个内容只能是符合ASCII编码的内容 ```JS function strCode(){ let a = "nihao" console.log(window.btoa(a)) // 输出:bmloYW8= } strCode() ``` > **Tips:** > atob方法和btoa方法都不支持中文,且中文标点符号也不支持,使用btoa对中文或中文标点符号进行base64码会报下面的错误 > ```TEXT VM56:3 Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range. ``` **<span id="atob-chinese">兼容中文的处理方式:</span>**对内容进行`encodeURIComponent()`编码,编码过后都是符号ASCII编码的内容了,再对内容进行`atob`编码后, ```JS function strCode(){ let a = "你好中国!" console.log(window.btoa(encodeURIComponent(a))) // 输出:JUU0JUJEJUEwJUU1JUE1JUJEJUU0JUI4JUFEJUU1JTlCJUJEJUVGJUJDJTgx } strCode() ``` atob()将经过base64编码的内容进行解码,这个内容只能是符合ASCII编码的内容 ```JS function strUnCode(){ let a = "bmloYW8=" console.log(window.atob(a)) // 输出:nihao } strUnCode() ``` > **Tips:** > 如果base64中含有中文,或中文标点符号,使用atob解码后会出现乱码 **兼容中文的处理方式:**对内容进行`atob`解码后,在对内容进行`decodeURIComponent()`解码,这种解码必须配合上面的[中文编码](#atob-chinese)才有效 ```JS function strunCode(){ let a = "JUU0JUJEJUEwJUU1JUE1JUJEJUU0JUI4JUFEJUU1JTlCJUJEJUVGJUJDJTgx" console.log(decodeURIComponent(window.atob(a))) // 输出:你好中国! } strunCode() ``` ### 1.3. URI编码与解码 在 JavaScript 中,可以使用 `encodeURIComponent()` 函数对参数进行编码,使用 `decodeURIComponent()` 进行解码: ```javascript // 原始参数 const originalParam = "AAO+q0jeAAIAAW8/9jzLFA=="; // 编码参数 const encodedParam = encodeURIComponent(originalParam); console.log(encodedParam); // 输出: "AAO%2Bq0jeAAIAAW8%2F9jzLFA%3D%3D" // 此时可以安全地将 encodedParam 作为路径参数传递 // 后端接收后需要解码 const decodedParam = decodeURIComponent(encodedParam); console.log(decodedParam); // 输出: "AAO+q0jeAAIAAW8/9jzLFA==" (恢复原始值) ``` 编码后,特殊字符会被转换为 `%` 加十六进制值的形式: - `+` 会被编码为 `%2B` - `/` 会被编码为 `%2F` - `=` 会被编码为 `%3D` 这样处理后,参数就能安全地作为 URL 路径的一部分进行传递,不会引发解析错误。需要注意的是,**后端接收时需要进行对应的解码操作**才能得到原始值。
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号