← 返回科研导航

URL 编码解码

encodeURIComponent · 表单编码 · 实时转换 · 历史记录

English 简体 繁體

编码模式

标准模式使用 encodeURIComponent / decodeURIComponent;表单模式会将空格编码为「+」。

原文

结果

输入内容后,编码 / 解码结果会实时显示在这里。

编码对照

原文中需要转义的字符逐个列出,方便核对编码规则与 UTF-8 字节。

历史记录

转换记录只保存在你自己浏览器的 localStorage(最多 {n} 条),点击条目可回填原文、模式与操作。

功能特性

使用方法

常见问题

encodeURIComponent 和 encodeURI 有什么区别?
encodeURI 只转义 URI 里不允许出现的字符,保留 : / ? # & = 等结构符号,适合转整个 URL;encodeURIComponent 除 A-Z a-z 0-9 - _ . ! ~ * ' ( ) 之外全部转义(包含 : / ? # & = 空格与中文),适合转 URL 的单个参数值。拼接请求参数、把内容塞进 URL 时用 encodeURIComponent 更安全,本工具标准模式就是它。
表单模式(x-www-form-urlencoded)和标准模式差在哪?
差别就在空格:标准模式把空格转义成 %20,而 HTML 表单提交规范(application/x-www-form-urlencoded)要求空格编码成 +。两种写法的含义相同(%20 与 + 都表示空格),但服务端按不同规范解析:解析表单体时见 + 转空格,解析 URL 路径与查询参数时有的框架会把 + 也当空格、有的不会,所以参数值要带空格时首选 %20,模拟表单提交时用 +。
解码报「URI malformed」是怎么回事?
decodeURIComponent 要求 % 后面紧跟两位十六进制数字(0-9 a-f A-F)。字符串里出现 % 后不是合法十六进制、或 %XX 形成的字节序列不是合法的 UTF-8 编码时,浏览器就会抛 URIError。常见来源:把已经解码过的文本再解一次、中文文本被截断、或从富文本编辑器粘贴时带入了不可见字符。
中文和 emoji 编码后为什么变成长串的 %XX?
URL 里只允许 ASCII 字符,非 ASCII 字符要先按 UTF-8 编码成字节,再把每个字节写成 %XX。一个中文字符占 3 个 UTF-8 字节所以是 %E4%B8%AD 这样的 9 个字符,emoji 占 4 个字节更长。这也是为什么 URL 里出现中文需要先编码——解码后它们会原样还原回来。
我粘贴的内容会上传吗?
不会。编码、解码、统计、对照表全部由页面里的 JavaScript 在你自己的浏览器内存中完成:本页是纯静态页面、没有任何后端接口,文本不会发出浏览器。历史记录只写在你设备自己的 localStorage 里(最多 20 条),可以随时一键清空。

关于本工具

URL 编码解码是一个纯前端的在线工具:输入文本,按「标准(encodeURIComponent)」或「表单(x-www-form-urlencoded)」两种规则实时给出结果,并附字符/字节统计、逐字符编码对照与本地历史记录。它解决的是前端开发、API 调试与爬虫场景里最常遇到的那类问题:中文字符、空格、&、#、? 一放进 URL 就出错。

转义引擎直接调用浏览器内置的 encodeURIComponent / decodeURIComponent(标准模式)与空格到 + 的替换(表单模式),没有第三方库、没有后端、没有统计脚本;所有输入输出都只存在于你自己的浏览器会话里。界面支持简体 / 繁體 / English。

站内其他工具

纯前端计算 · 浏览器本地处理 · 免费 · 支持中/繁/英