中文怎样转 Base64?URL safe 模式和解码选项怎么用?
同一段中文转成 Base64,为什么一份结果带加号和等号,另一份却没有?先看对方要求的是普通 Base64,还是 URL safe Base64。两种写法对应的原始内容可以相同,但交给接口时不能只凭“看起来差不多”混用。
宝塔拨测的 Base64 编码 / 解码工具支持中文,也有单独的 URL safe 开关。下面用公开示例 中文😀 演示一遍,既方便核对中文,也能看出两种模式的差别。
先转换一段中文
打开工具,停留在“字符串转 Base64”页签,先不要勾选“URL safe 模式”。在输入框粘贴:
中文😀
输入后,下方直接生成结果,不需要再找“开始转换”按钮。本次得到:
5Lit5paH8J+YgA==

确认结果后,点击“复制结果”取走下方内容。要换一段文字,可以直接改上面的输入;准备清掉当前内容时,再使用“清空”。示例中的表情只是为了方便看出编码差异,实际操作请粘贴自己需要转换的完整文本。
这里要保留空格、换行和标点的原样。Base64 转换的是文本对应的字节,末尾多一个换行也会改变结果。对照接口样例时,应先确认原文是否完全相同,再比较输出,不要为了让字符串看起来一致而随意删改原文。
URL safe 开关改变了什么
保留刚才的输入,勾选“URL safe 模式”,结果会立即变成:
5Lit5paH8J-YgA
这次可以直接看到,普通模式中的 + 变成了 -,末尾的 == 被去掉了。界面还注明会把 / 换成 _;这个示例没有产生 /,因此截图中只显示前两处变化。

URL safe 使用适合 URL 和文件名场景的另一套字符表。本工具还会移除末尾填充符 =,但接收方是否要求无填充,应以接口约定为准。文档写着普通 Base64,就使用普通模式;明确要求 Base64url 或 URL safe 时,再打开这个选项。
这也不等于“把整条网址编码”。它处理的是输入数据的 Base64 表示,不能代替查询参数拼接规则。把结果放进某个参数时,仍需按接收接口规定的字段和格式提交。
反向还原时重新确认模式
点击“Base64 转字符串”,粘贴刚才的 URL safe 结果。切换页签后,要重新检查开关:本次操作中,切到解码页签时,URL safe 没有继续保持勾选状态。
勾选解码页签中的“URL safe 模式”,再输入:
5Lit5paH8J-YgA
下方还原为 中文😀,与原文一致。

如果拿到的是普通 Base64,先取消这个开关,并保留对方提供的完整字符串。工具中看到的输入选项,比上一次操作时记住的状态更可靠;切换方向后看一眼,能少排查一次“同样的内容为什么解不出来”。
提示不合法时怎样核对
本次在解码框输入 %%%,页面显示“不是合法的 Base64 字符串”,结果区为空,“复制结果”也不可用。

遇到相同提示,先核对三件事:复制的内容是否完整、普通与 URL safe 模式是否对应、有没有把外层引号或其他说明一起粘进来。若内容以 data: 开头,还带有 MIME 类型和逗号,它是 DataURL,应改用文件 / Base64 互转工具处理,不要把整段当成普通文本编码结果。
Base64 本身可以反向解码,不承担保密作用。需要演示时使用无隐私样例即可;是否适合传输敏感内容,要由业务的身份验证、权限和加密方案决定。