Unicode / 字节编码转换
Unicode 转义、UTF-8 文本与 Hex 字节互转,区分字符与字节。
字符 0字节 0行 0
字符 0字节 0行 0
三把「尺子」
- 字符(码点):用户眼中的一个字符。
🎉是 1 个字符。 - UTF-16 码元:JS 字符串的存储单位。
🎉占 2 个码元(代理对),中占 1 个。 - UTF-8 字节:网络传输 / 文件落盘的实际字节。
🎉占 4 字节,中占 3 字节,ASCII 字符占 1 字节。
转义规则
- 格式为
\uXXXX(4 位十六进制);默认只转义非 ASCII 字符,英文与换行保持可读。 - 码点 > 0xFFFF 的字符(如 emoji)用代理对的两个
\uXXXX表示,例如 🎉 为\ud83c\udf89。 - 还原时:成对的
\\是字面反斜杠文本,原样保留;单个\u后不足 4 位十六进制会报错并定位位置。 - 还原使用逐字符扫描替换,不使用 eval。
Hex 字节
- 文本 → Hex:按 UTF-8 编码,输出连续小写十六进制。
- Hex → 文本:忽略空白;长度必须为偶数且为合法十六进制;字节序列必须是有效 UTF-8,否则报错并定位到第几个字节。
什么时候用「Unicode / 字节编码转换」
要把中文转成 \uXXXX 转义写进 Java 源码,或核对一段文本真实的 UTF-8 字节值。
使用要点
- 明确区分“字符”与“字节”,避免转义后长度对不上。
- 支持 Unicode 转义、UTF-8 文本与 Hex 字节三者互转。
- 排查乱码时,先用它看清真实字节序列再决定怎么修。
相关工具
Unicode / 字节编码转换与其他 44 个工具一样,全部计算都在你的浏览器里完成:输入、密钥与文件不会发送到服务器,页面首次加载后可离线使用。