用浏览器自带的 encodeURIComponent / encodeURI / decodeURIComponent 做百分号(%XX)编码的在线工具、原理说明和可复制代码示例。全部在你的浏览器里运行。
在下面输入文字,下方三个框会实时显示 JavaScript 三个原生函数各自的结果。
// 把一个值编码,用作查询参数
const q = encodeURIComponent('你好 world');
// → "%E4%BD%A0%E5%A5%BD%20world"
const url = 'https://example.com/search?q=' + q;
function buildQuery(params) {
return Object.keys(params)
.map(k => encodeURIComponent(k) + '=' + encodeURIComponent(params[k]))
.join('&');
}
const qs = buildQuery({ q: '你好', page: 2 });
// → "q=%E4%BD%A0%E5%A5%BD&page=2"
// 浏览器环境:自动帮你 decode
const params = new URLSearchParams(window.location.search);
const q = params.get('q'); // 已是解码后的原文
// 手动解码一段编码串
const raw = '%E4%BD%A0%E5%A5%BD';
const text = decodeURIComponent(raw); // "你好"
function encodeUrl(url) {
const u = new URL(url);
u.pathname = u.pathname.split('/').map(encodeURIComponent).join('/');
u.search = '?' + new URLSearchParams(
[...new URLSearchParams(u.search)].map(
([k, v]) => [encodeURIComponent(k), encodeURIComponent(v)]
)
).toString();
return u.toString();
}
encodeUrl('https://example.com/搜索?q=你好');
function safeEncode(str) {
// 如果已经编码过(含 %XX),就先解码再编码,保证只编一次
const decoded = /%[0-9A-Fa-f]{2}/.test(str) ? decodeURIComponent(str) : str;
return encodeURIComponent(decoded);
}
无需登录 · 无限使用 · 仅在你浏览器内运行。想回到通用编解码工具?点这里 →