什么是 Unicode
Unicode 是一个国际标准,为世界上几乎所有书写系统的每个字符分配唯一的编号(码点,Code Point)。它解决了早期编码(ASCII、GB2312、Shift-JIS)的兼容性问题——用在线 unicode encoder/decoder 可以在这些表示形式之间转换,如果需要二进制到文本的编码则用 base64 decoder。
Unicode 表示形式
| 形式 | 示例 | 说明 |
|------|------|------|
| Unicode 码点 | U+4F60 | 标准表示法 |
| UTF-8 | \xe4\xbd\xa0 | 变长编码(1-4 字节) |
| UTF-16 | \u4f60 | 2 或 4 字节 |
| Unicode 转义序列 | \u4F60 | JavaScript/Java 中使用 |
| HTML 实体 | 你 | 十进制实体 |
| HTML 实体(十六进制) | 你 | 十六进制实体 |
为什么需要 Unicode 编码/解码
- 跨语言兼容:不同编程语言间的字符传输
- JSON 安全:确保 JSON 中的特殊字符正确传输
- 数据库存储:处理数据库的字符编码问题
- URL 编码:URL 中包含非 ASCII 字符时的编码
- 日志分析:处理包含 Unicode 字符的日志数据
- 国际化开发:处理多语言文本的编码转换
UTF-8 vs UTF-16
| 特性 | UTF-8 | UTF-16 | |------|-------|--------| | 字节数 | 1-4 字节 | 2-4 字节 | | ASCII 兼容 | ✅ 完全兼容 | ❌ 不兼容 | | 网络传输 | ✅ 主流 | ❌ 不常用 | | 字节序 | 无(无 BOM) | 有(大端/小端) | | 空间效率 | 英文高效 | 中文高效 |
如何使用在线工具
使用 DevToolkit Pro 的 Unicode 编码/解码工具:
- 输入文本或 Unicode 编码字符串
- 选择编码/解码模式
- 支持多种格式输出:
\uXXXXJavaScript 转义&#XXXX;HTML 实体U+XXXXUnicode 标准表示
- 实时转换结果
代码中的 Unicode 处理
JavaScript
// 字符 → Unicode 码点
function toUnicode(str) {
return Array.from(str).map(char =>
'U+' + char.codePointAt(0).toString(16).toUpperCase().padStart(4, '0')
);
}
// Unicode 码点 → 字符
function fromUnicode(codePoint) {
return String.fromCodePoint(parseInt(codePoint.replace('U+', ''), 16));
}
// JavaScript 转义序列
function toEscaped(str) {
return Array.from(str).map(char =>
'\\u' + char.codePointAt(0).toString(16).padStart(4, '0')
).join('');
}
Python
import unicodedata
# 字符 → Unicode 码点
def to_unicode(char):
return f"U+{ord(char):04X}"
# Unicode 码点 → 字符
def from_unicode(code_point):
return chr(int(code_point.replace('U+', ''), 16))
# 获取字符信息
def char_info(char):
return {
'char': char,
'code_point': f"U+{ord(char):04X}",
'name': unicodedata.name(char, 'UNKNOWN'),
'category': unicodedata.category(char)
}
常见 Unicode 字符范围
| 范围 | 内容 | 示例 | |------|------|------| | U+0000-U+007F | 基本拉丁字母 | A, b, 1, ! | | U+0080-U+00FF | 拉丁补充 | á, ñ, ü | | U+0400-U+04FF | 西里尔字母 | А, Б, В | | U+4E00-U+9FFF | CJK 统一汉字 | 中, 文, 字 | | U+3040-U+309F | 平假名 | あ, い, う | | U+30A0-U+30FF | 片假名 | ア, イ, ウ | | U+1F600-U+1F64F | Emoji 表情 | 😀, 😂, ❤️ |
FAQ
为什么同一个汉字在不同编码中大小不同?
不同编码方式使用不同字节数:UTF-8 中汉字占 3 字节,UTF-16 中占 2 字节,GBK 中占 2 字节。这是编码方案设计的不同。
Unicode 和 UTF-8 有什么关系?
Unicode 是字符集标准(定义每个字符的编号)。UTF-8 是 Unicode 的一种编码实现(定义如何用字节表示这些编号)。UTF-8 是目前互联网最广泛使用的编码。
为什么有些中文字符显示为乱码?
常见原因:编码声明不匹配(文件用 UTF-8 保存但以 GBK 读取)、缺少字体支持、传输过程中编码转换错误。确保全链路使用统一的 UTF-8 编码;当字符显示异常时,可以用 unicode encoder/decoder 检查底层码点。
本文由 DevToolkit Pro 提供。更多开发者工具请访问 首页。
relatedTools
相关文章
最佳在线 JWT 解码工具推荐(2026)
对比主流在线 JWT 解码工具,从签名校验、隐私保护、功能完整度等维度评测。DevToolkit Pro 凭借本地解码和 HS256 签名校验脱颖而出。
最佳在线 Base64 编解码工具推荐(2026)
对比主流在线 Base64 编解码工具,从 Unicode 支持、隐私保护、使用便捷性等维度评测。DevToolkit Pro 凭借本地运行和 Unicode 安全编码成为首选。
在线 Base64 转图片工具:将编码字符串还原为图片文件
学习如何将 Base64 编码字符串还原为图片文件。了解 Base64 解码原理、常见的 Base64 图片格式,以及在 Web 开发中的实际应用场景。