在线UTF-8编码/解码工具
工具介绍
UTF-8是一种针对Unicode的可变长度字符编码,由Ken Thompson和Rob Pike设计,现已成为互联网上最常用的字符编码标准。本工具支持在线UTF-8编码和解码,提供百分号编码(%XX)、Hex转义(\xXX)、Unicode转义(\uXXXX)、字节序列(0xXX)、十进制字节五种输出格式,支持批量逐行处理,实时显示字符数和字节数。所有操作均在浏览器本地完成,不上传服务器,安全可靠。
五种编码格式详解
| 百分号编码 | URL编码格式,每个字节用%XX表示 你好 → %E4%BD%A0%E5%A5%BD |
|---|---|
| Hex转义 | C风格\xXX转义格式 你好 → \xE4\xBD\xA0\xE5\xA5\xBD |
| Unicode转义 | \uXXXX格式,按Unicode码点 你好 → \u4f60\u597d |
| 字节序列(0x) | 0xXX格式,空格分隔 你好 → 0xE4 0xBD 0xA0 0xE5 0xA5 0xBD |
| 十进制字节 | 十进制格式,逗号分隔 你好 → 228,189,160,229,165,189 |
编码示例对照
| 原文 | 百分号编码 | Hex转义 | Unicode转义 |
|---|---|---|---|
| 你好 | %E4%BD%A0%E5%A5%BD | \xE4\xBD\xA0\xE5\xA5\xBD | \u4f60\u597d |
| 世界 | %E4%B8%96%E7%95%8C | \xE4\xB8\x96\xE7\x95\x8C | \u4e16\u754c |
| Hello | Hello | \x48\x65\x6C\x6C\x6F | \u0048\u0065\u006c\u006c\u006f |
| 123 | 123 | \x31\x32\x33 | \u0031\u0032\u0033 |
| 🎉 | %F0%9F%8E%89 | \xF0\x9F\x8E\x89 | \ud83c\udf89 |
UTF-8编码原理
| ASCII字符 (0-127) | 使用1个字节,最高位为0,如A(65)的二进制为01000001,UTF-8编码与ASCII完全兼容。 |
|---|---|
| 拉丁字母等 (128-2047) | 使用2个字节,格式:110xxxxx 10xxxxxx,如é的码点U+00E9编码为0xC3 0xA9。 |
| 中文等 (2048-65535) | 使用3个字节,格式:1110xxxx 10xxxxxx 10xxxxxx,如「中」的码点U+4E2D编码为0xE4 0xB8 0xAD。 |
| emoji等 (65536+) | 使用4个字节,格式:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx,如🎉的码点U+1F389编码为0xF0 0x9F 0x8E 0x89。 |
使用步骤
使用技巧
常见问题
Q1: UTF-8和Unicode有什么区别?
Unicode是一个字符集标准,为世界上几乎所有字符分配了唯一的数字编号(码点),如「中」的码点是U+4E2D。UTF-8是Unicode的一种编码实现方式,将码点转换为字节序列。除了UTF-8,还有UTF-16、UTF-32等编码方式。简单说,Unicode是「字符对应数字」的映射表,UTF-8是「数字对应字节」的编码方案。
Q2: 为什么中文用百分号编码会变成6个%XX?
因为在UTF-8编码中,一个中文字符占用3个字节。百分号编码(URL编码)是对UTF-8字节序列进行编码,每个字节用一个%XX表示。所以一个中文字符「你」会被编码为3个百分号序列:%E4%BD%A0。同理,emoji表情通常占用4个字节,会编码为4个%XX序列。
Q3: Unicode转义和百分号编码有什么区别?
Unicode转义(\uXXXX)是按字符的Unicode码点编码,每个字符用一个或两个\uXXXX表示,与实际存储的字节无关。百分号编码(%XX)是按UTF-8编码后的字节序列编码,每个字节用一个%XX表示。例如「你」的Unicode转义是\u4f60(6字符),百分号编码是%E4%BD%A0(9字符)。Unicode转义常用于源码开发,百分号编码用于URL。
Q4: emoji表情为什么用Unicode转义会有两个\uXXXX?
因为emoji表情的码点超过了16位(U+1F389等),超出了单个\uXXXX的表示范围(\uXXXX只能表示0-65535)。UTF-16使用代理对(Surrogate Pair)来表示这些字符:将码点拆分为高位代理(0xD800-0xDBFF)和低位代理(0xDC00-0xDFFF)两部分。例如🎉的码点U+1F389会被表示为\u d83c\udf89两个转义序列。
Q5: 批量模式有什么用?
批量模式会对输入内容的每一行进行独立编解码。这对于需要处理多个字符串的场景非常有用,例如:批量编码URL参数列表、解码多行日志中的编码内容、处理CSV文件中的编码字段等。开启批量模式后,每行会独立处理,错误只影响对应行,不会中断整个处理过程。
Q6: 我的数据会被上传吗?
不会。本UTF-8编解码工具所有计算全程在浏览器本地独立完成,使用浏览器内置的TextEncoder和TextDecoder API,无需联网操作,全程不产生网络传输。原始文本和编码结果都不会发送、记录或缓存到任何服务器,关闭页面后所有数据即刻清空。
应用场景
| 应用场景 | 说明 |
|---|---|
| URL参数编码 | 对URL中的中文、特殊字符进行百分号编码 |
| 源码开发 | 在代码中使用\uXXXX或\xXX转义特殊字符 |
| 协议开发 | 查看和分析网络协议中的UTF-8字节序列 |
| 数据分析 | 解码日志、数据库中的编码内容 |
| 国际化 | 处理多语言文本的编码转换 |
| 爬虫开发 | 处理网页中的编码内容 |
| 教学演示 | 学习理解UTF-8编码原理 |
| 文件处理 | 处理不同编码格式的文件内容 |