本地计算 · 无账号
使用 encodeURIComponent / decodeURIComponent。
这是什么
URL 编码(百分号编码)把空格、中文与保留字符转成 %XX,避免破坏查询串。本页对文本做 encodeURIComponent / decodeURIComponent,适合检查参数里到底塞了什么,或拼链接前预览编码结果。计算在浏览器完成,不会去请求你输入的网址。把它当成「查询值的打字机」,而不是「整站链接缩短器」。
原理
每个需要转义的字节写成百分号加两位十六进制。UTF-8 下,一个汉字常对应三个字节,于是变成连续三个 %XX。encodeURIComponent 会编码 / ? & = 等结构字符,适合「单个查询值」;encodeURI 则尽量保留 URL 骨架。表单里有时用 + 表示空格,与 %20 场景不同。本页选择更严格的组件编码,减少把整段 URL 误编码后无法打开的情况。可以把它想成:路径与查询的「语法字符」必须保留给解析器,用户数据里的同类字符则要逃逸,否则服务器会把你的斜杠当成新的路径段。搞清「编码的是哪一层」比死记函数名更重要。
什么时候用
复制带中文的搜索词、调试 OAuth redirect、或日志里出现一长串 %E4%BD%A0 时,可快速还原可读文本,也可把空格与符号编进查询值。不要对已经是完整 URL 的字符串盲目整链编码。写爬虫或 C++ HTTP 客户端拼 query 时,也适合先用本页确认单个参数的期望编码,再检查自己实现是否少编了 & 或 =。
示例
- 编码含空格与斜杠的值
输入:a b/中文 输出:a%20b%2F%E4%B8%AD%E6%96%87
- 解码 UTF-8 序列
输入:%E4%BD%A0%E5%A5%BD 输出:你好
常见错误
- 整段 URL 不要用本页一次性编码,否则会破坏协议与路径分隔。
- 加号 + 在 application/x-www-form-urlencoded 里常表示空格,和 %20 来源不同。
- 非法 % 序列(如 %ZZ)会导致解码失败。
常见问题
- 和 encodeURI 有什么区别?
- encodeURI 保留结构字符;本页用 encodeURIComponent,适合编码单个组件。
- 会访问我输入的网址吗?
- 不会。只做字符串变换,不发起网络请求。
- 能拆 host / path / query 吗?
- 本页专注编解码。拆解可用浏览器 URL 构造函数或开发者工具。
C++ 里拼查询串时记得编码参数值
#include <iostream>
#include <string>
// 伪代码:对 value 做百分号编码后再拼接
// auto q = "/search?q=" + percent_encode(user_input);
int main() {
std::string raw = "a b";
std::cout << "记得编码,而不是直接拼接: " << raw << "\n";
}自己实现 percent_encode 时务必按 UTF-8 字节输出 %XX。可在 Playground 写单元测试,用本页样例作期望值。
在 Playground 打开 · 数据只在本地处理:不会把待编码文本发往本站 API。若你同时打开多个标签页,各自的输入也不会同步到服务器或其他设备。