Sublime Text原生不支持URL编码,必须安装Package Control中的“URL Encoding”插件;启用后通过Ctrl+Shift+P调用URL Encode/Decode命令,需精准多光标选中无引号的URL片段,避免破坏上下文结构。

Sublime里URL Encode必须装插件,原生不支持
Sublime Text 自带功能完全无法对选中文本做 URL 编码(即把空格→%20、中文→%E4%B8%AD等)。你搜遍菜单、命令面板、正则选项,都找不到 URL Encode 这个命令——它根本不存在。不装插件,所有“批量转义 URL 特殊字符”的想法都会卡在第一步。
- 官方 Package Control 里搜
URL Encoding,安装后重启生效(注意不是 “UrlEncode” 或 “URLEncode” 等变体) - 插件启用后,
Ctrl+Shift+P输入URL Encode才会出现对应命令 - 没装插件时按
Ctrl+Shift+P搜到的类似命令(如Base64 Encode)是别的编码,别混淆
多光标选中 URL 是关键,别连引号一起选
插件只处理当前光标所在选区,不会自动识别“这是个 URL”。如果你用 Ctrl+F 搜 https?://[^\s"]+ 后直接 Find All,但没关掉 Match Whole Word 或忘了排除引号,就可能把 "https://a.com" 中的双引号也框进去——结果 " 被转成 %22,URL 就废了。
- 推荐先用正则
https?://[^\s"']+查找,确保匹配结果不带引号或尖括号 - 按
Ctrl+Enter全选所有匹配项,再按Ctrl+Shift+L拆成多光标(比Ctrl+D更稳,尤其当 URL 长度不一时) - 检查每个光标是否精准落在 URL 字符范围内:把光标移到行首按
→,看是否逐字跳过 URL,而不是卡在引号上
URL Encode 命令是并行处理,但不支持跨行或嵌套
插件对每个独立选区分别调用 Python 的 urllib.parse.quote(),所以 张三&age=25 会变成 %E5%BC%A0%E4%B8%89%26age%3D25,空格、&、=、? 全部正确转义。但它不会理解上下文——比如你选中的是 JSON 字符串里的值:{"url": "https://x?a=1 b"},插件照常编码,但外面的双引号和 JSON 结构不会被保护。
- 别把整个 JSON 行拖进去编码,只选
https://x?a=1 b这一段 - 换行符不能被
URL Encode处理;如果 URL 跨了两行(比如被 \ 折行),插件会把它当两个不完整字符串分别编码,结果不可用 - 插件不处理 HTML 实体(如
&→%26),那是另一类编码,得用其他插件或手动替换
想批量解码?插件有 URL Decode,但得手动触发
URL Encoding 插件同时提供 URL Decode 命令,但它不会自动检测已编码文本。你不能指望它扫描全文件把所有 %20 变回空格——必须像编码一样,先精准选中那些已编码的片段,再执行命令。
- 正则查找已编码内容可用:
%[0-9A-Fa-f]{2}(注意这只是粗筛,%20是空格,%E4%B8%AD是中文,长度不同) - 更稳妥做法:在编码前复制原始 URL 到新标签页留底,解码时对照着来,避免误操作
- 如果解码后出现乱码(如
%E4%B8%AD变成 ),说明文件编码不是 UTF-8——右下角点编码名,选UTF-8再试
Find All 预览匹配范围,比事后修语法错误省半小时。

















