跳转到正文

文本编码与解码工具

选择 Base64、URL 编码、HTML 实体或 Unicode 转义,输入或粘贴文本,即可随输入看到编码或解码的结果。交换按钮会把输出变为下一次的输入,方便您检查往返转换是否一致。免费,无需注册,文本在您的浏览器中转换,从不上传。

如何使用文本编码与解码工具

  1. 1. 选择格式。 Base64、URL 编码、HTML 实体或 Unicode 转义;每张卡片都说明了它的用途。
  2. 2. 选择编码或解码。 编码会把可读文本转为该格式;解码则把它还原。
  3. 3. 输入或粘贴。 输出会随您的输入即时显示。没有任何内容会被提交。
  4. 4. 复制或交换。 复制到剪贴板 复制输出。交换输入/输出 把输出移入输入框并翻转方向,这是确认往返转换是否一致的最快方法。

各种编码的适用场景

格式用途标准输出
Base64在纯文本通道中传送字节:电子邮件附件、data URI、令牌、JSONRFC 4648字母、数字、+、/ 与 = 填充;长度约增加三分之一
URL 编码将文本安全地放入查询字符串或路径段中RFC 3986每个不安全字节写为 % 加两位十六进制数
HTML 实体在网页中显示 <、& 以及非 ASCII 字符HTML 字符引用如 &#233; 的十进制数字引用
Unicode 转义在 JavaScript、JSON 或 Java 源代码中写入非 ASCII 字符JSON (RFC 8259)、ECMAScript\u 加每个字符四位十六进制数

编码不是加密。 这四种都是公开的、可逆的转换,没有密钥,任何人都能解码。Base64 尤其常被误认为是一种保护;它只是改变了字节的书写方式。

示例

以下是 Café & crème ☕ 经过各种格式处理后的输出,与工具给出的结果一致:

格式编码结果
Base64Q2Fmw6kgJiBjcsOobWUg4piV
URL 编码Caf%C3%A9%20%26%20cr%C3%A8me%20%E2%98%95
HTML 实体Caf&#233; &#38; cr&#232;me &#9749;
Unicode 转义Caf\u00e9 & cr\u00e8me \u2615

注意每种格式保留了什么。HTML 编码把 & 写成 &#38;,但保留普通字母和空格。Unicode 转义只改变编码超过 127 的字符,因此 & 保持不变。URL 编码则把整个字符串改写为 UTF-8 字节:é 是两个字节 C3 A9,因此写作 %C3%A9,空格为 %20。Base64 则改写全部内容,因为它以三个字节为一组,处理整个字符串的 UTF-8 字节。

容易出错的地方

  • URL 编码针对的是组成部分,而非整个网址。 工具会转义除字母、数字以及 - _ . ! ~ * ' ( ) 之外的所有字符,因此 a b&c=d/e?f 会变为 a%20b%26c%3Dd%2Fe%3Ff。斜杠、冒号和问号也会被转义,这对于值来说是正确的,但若用于完整的网址就会出错。
  • 空格变为 %20,加号不会被解码。 表单数据用 + 表示空格,但这里的解码会把 a+b%20c 解码为 a+b c。
  • Base64 使用标准字母表编码。 解码时也接受 URL 安全的 Base64,它用 - 和 _ 代替 + 和 /,并且 = 填充可能缺失。编码始终写入 +、/ 与填充,如果您需要 URL 安全格式,请自行替换。
  • 超过 U+FFFF 的表情符号和其他字符 在 HTML 编码中被视为单个字符,每个字符写作一个引用(😀 写作 &#128512;)。Unicode 转义则将其写为两个代理项转义(😀 写作 \ud83d\ude00),JavaScript 和 JSON 都接受。
  • 解码错误显示在输出框中,并以方括号括起,例如 [Error: invalid Base64 input],而不是单独的消息。

您需要哪个工具?

本页用于转换网页用的文本。若要查看文本的原始字节,请使用十六进制转换工具(十六进制字节)或二进制翻译工具(每 8 位一组)。若要查看字符的数字编码,请使用 ASCII 转换工具 获取十进制编码。要在进制之间转换数字,请使用进制。Base32、Base58 与 Ascii85 则由计划中的 Base 编码转换器 涵盖。

常见问题

这个工具支持哪些编码格式?
四种:Base64(RFC 4648)、URL 百分号编码、HTML 十进制数字实体,以及 Unicode \u 转义。每种都可以编码或解码。
Base64 有什么用途?
它使用 64 个可打印字符表示二进制数据,以便通过专为文本设计的系统传送:电子邮件附件、嵌入图片的 data: URI、HTTP 基本认证头,以及 JSON Web Token 的各段。它会让数据大约增大 33%,并且不提供任何保密性。
什么时候应该使用 URL 编码?
只要用户提供的文本放入网址的任何部分——查询值、路径段、片段——都应使用,因为空格、& 符号、等号、非 ASCII 字母以及类似字符否则会被误读。应当编码各个部分,而不是整个地址。
编码与加密是一回事吗?
不是。编码只改变数据的书写方式,以便存储或发送;任何人都可以将其还原,而且没有密钥。加密则需要密钥。切勿用 Base64 或百分号编码来隐藏密码或令牌。
它能解码 URL 安全的 Base64 吗?
可以。粘贴使用 - 和 _ 的 URL 安全字符串,无论是否带 = 填充,都能解码。编码时使用的是标准字母表,因此如果您需要 URL 安全格式,请自行把 + 替换为 -、/ 替换为 _。
解码器能识别哪些 HTML 实体?
十进制引用(&#233;)和十六进制引用(&#xE9;),适用于至 U+FFFF 的字符,以及一小组命名实体:&amp;、&lt;、&gt;、&quot;、&apos;、&nbsp;、&copy;、&reg;、&trade;、&euro;、&pound;、&yen;、&cent;、&mdash;、&ndash;、&laquo;、&raquo; 和 &hellip;。其他命名实体(如 &eacute;)会保持原样不变。
我的文本会被上传到任何地方吗?
不会。这四种转换都在您的浏览器中随输入即时完成,不会向 CitationEasy 发送任何内容。

相关工具

数据、标记语言与代码中的更多工具