新版notepad++(v8.5+)内置utf-8 base64编码功能,需先选中文本再右键→encoding→convert to utf-8 base64;mime tools插件因架构变更已彻底失效,推荐用python script插件编写编码/解码脚本。

新版 Notepad++(v8.5+)有内置 Base64 编码功能,但只支持 UTF-8 字符串编码,不处理二进制或换行
直接选中文本 → 右键 → Encoding → Convert to UTF-8 Base64 即可。这不是“Base64”菜单项,而是藏在编码子菜单里,名字明确带 UTF-8 Base64 —— 它会先把选中内容按 UTF-8 编码成字节,再做 Base64 编码,行为等价于 Python 的 base64.b64encode(s.encode())。
常见误操作:右键找不到该选项,是因为没选中文本;或者点了 Convert to Base64(根本不存在这个菜单项),那是旧教程误导。
- 仅适用于纯文本,不能用于图片、PDF 等文件内容
- 若原文含 BOM(如 UTF-8 with BOM),编码结果会把 BOM 一起转进去,解码后多出
开头,需提前用Encoding→Convert to UTF-8 without BOM清理 - 自动处理换行符(
\r\n或\n),但不会对 Base64 输出做 76 字符折行,输出是一整行
为什么 MIME Tools 在 v7.9+ 上基本不可用
不是你装错了,是它根本加载不了:MIME Tools 是 32 位老插件,依赖已被移除的 PluginManager.dll;v7.9 起 Notepad++ 改用签名插件沙箱机制,MIME Tools 不在新体系内,连扫描都不会扫到。
即使你手动把 MimeTools.dll 复制进 plugins\ 目录,启动日志只会显示 Failed to load plugin: MimeTools.dll,无弹窗、无提示、无菜单项 —— 它静默失败,不是“没启用”。
- 64 位 Notepad++(当前默认安装包)完全忽略该 DLL,连尝试加载都不会
- Plugins Admin 里搜不到,不是网络问题,是官方源已下架,勾选
Show all plugins也无效 - 降级到 v7.8.9 并强行运行风险高:容易乱码、崩溃、与其它插件冲突
用 Python Script 插件写一行脚本最稳
装好 Python Script v1.5+ 后,新建脚本 base64_encode.py,内容就这一行:
import base64; editor.replaceSel(base64.b64encode(editor.getSelText().encode()).decode())
保存后,在 Plugins → Python Script → Scripts 下就能调用。解码脚本建议加异常捕获,避免空结果或乱码:
import base64
try:
decoded = base64.b64decode(editor.getSelText().encode()).decode()
editor.replaceSel(decoded)
except Exception as e:
notepad.messageBox(f"解码失败: {e}", "Error")
- 必须用
editor.getSelText().encode(),不能省略.encode(),否则中文会报UnicodeEncodeError - 解码后默认按 UTF-8 解,如果原始是 GBK 编码的 Base64(少见但存在),得改成
.decode('gbk') - 脚本可绑定快捷键,比每次点菜单快得多
别信“复制粘贴到 certutil 或 PowerShell”的临时方案
比如在 Run 对话框里填 cmd /c "echo $(CURRENT_WORD) | certutil -decode - $(TEMP)\tmp.b64 >nul && type $(TEMP)\tmp.b64" —— 这根本不可靠。
$(CURRENT_WORD) 不保留换行,certutil 又要求输入严格符合 Base64 块格式(长度 4 的倍数、含正确填充、无空格),实际一粘贴就失败。
- PowerShell 编码命令
[Convert]::ToBase64String([IO.File]::ReadAllBytes('path'))只能处理文件,不能处理选中文本 - 浏览器
atob()虽快,但只支持标准 Base64(不兼容 URL Safe 变体-_),且无法批量、无法集成进编辑流程 - 真正要转的是文件内容(比如一张 PNG),这些临时法全都不适用,必须走外部脚本或 Python Script
真正的难点不在“怎么点菜单”,而在于:你手里的 Base64 字符串是否干净——有没有隐藏换行、是不是 URL Safe 变体、填充是否完整。这些细节不处理,再好的插件也返回空或乱码。











