Unicode 字符表,免费

按类别浏览 Unicode 字符,按名称或代码点搜索,并复制到剪贴板。

您的数据不会离开您的设备

使用方法

  1. 点击类别选项卡以显示该组的字符。
  2. 点击字符查看详情和复制选项。
  3. 使用搜索栏按名称(如「heart」)或十六进制代码(如「2665」)查找字符。
  4. 点击复制字符将所选字符复制到剪贴板。

常见问题

什么是 Unicode 代码点?

Unicode 代码点是 Unicode 标准中分配给每个字符的唯一编号。它以十六进制书写,通常带前缀 U+(例如 ♥ 的代码点为 U+2665)。

什么是 HTML 实体?

HTML 实体是用于在 HTML 中表示字符的特殊代码。例如,♥ 代表 ♥。当无法直接键入某个字符时,实体很有用。

什么是 CSS 代码?

CSS 代码使用 \\ 记号在样式表中通过 Unicode 代码点插入字符。例如,.heart::before { content: "\\2665"; } 会插入 ♥。

Unicode简史

在Unicode之前,每个地区都有其不兼容的字符编码:英语使用ASCII,欧洲语言使用ISO 8859系列(8859-1拉丁文-1、8859-5西里尔文、8859-6阿拉伯文),Windows代码页1252/1251/1253-1258,东亚语言使用多字节字符集(日语Shift-JIS、繁体中文Big5、简体中文GB2312、韩语EUC-KR)。编码不匹配会产生乱码,日语称之为mojibake(文字化け,即「字符变形」),在错误的编码下打开日语页面会显示一行行问号或随机拉丁文字符。

这项工作始于1987年的施乐公司。Joe Becker与苹果公司的Lee CollinsMark Davis开始研究一种能够取代这种拼凑方案的单一通用字符集。Becker于1988年8月提交的草案「Unicode 88」写道:「'Unicode'这个名称旨在传达唯一、统一、通用的编码理念。」Unicode联盟于1991年1月正式成立,同年10月发布了Unicode 1.0,涵盖24种文字的约7,100个字符。

截至Unicode 17.0(2025年9月9日发布),该标准包含172种文字中的约159,801个字符,代码空间分配了1,112,064个有效码位,这意味着Unicode已分配了约14%的可用空间,未来数十年仍有充足余量。近年主要里程碑:Unicode 6.0(2010年)是首个正式收录emoji的版本(共722个,均来自日本运营商);Unicode 17.0新增了四种文字(西底提文、托隆西基文、贝里亚厄尔菲文、傣约文),并将CJK表意字符总数突破100,000大关。

码位、平面与编码

码位是一个数字,用十六进制加U+前缀表示,如♥为U+2665。码位被分组为17个平面,每个平面包含65,536个码位。您读到的几乎所有内容都位于第0平面,即基本多文种平面(BMP,U+0000至U+FFFF)。第1平面(增补多文种平面)收录历史文字(线形文字B、埃及象形文字、楔形文字)、乐谱符号以及几乎全部emoji。第2和第3平面为CJK表意字符扩展区。第4至第13平面为未分配区域,留作未来使用。第14平面承载变体选择器和emoji修饰符。第15和第16平面为私用区,供字体和应用程序自行赋义。

码位只是一个数字;编码是该数字以字节形式存储的方式。Unicode定义了三种编码:

25个不可见空白字符

Unicode正式将25个字符标记为 White_Space=yes 属性:普通空格(U+0020)、制表符、换行符、回车符、不换行空格(U+00A0,外观与普通空格完全相同,但不会在行末断行)、U+2000-U+200A的排印宽度字符、行分隔符/段落分隔符(U+2028/U+2029)、法语排印中常用的窄不换行空格(U+202F)、中等数学空格(U+205F),以及CJK文本使用的全角表意空格(U+3000)。

有几个字符看起来不可见,但并不被归类为空白字符,其行为也与普通空格不同:

这些不可见字符常常是「为什么字符串无法匹配」调试问题的根源,只需将任意字符粘贴到字符映射表的搜索框中,即可显示其实际码位,从而确认您看到的是伪装成直引号的弯引号,还是本应为普通空格位置上的NBSP。

常用字符范围

字符块范围示例
拉丁文-1补充U+0080-U+00FFà ñ ü © ® ¥ § ° ¶
希腊语U+0370-U+03FFα β γ π Σ Ω
西里尔字母U+0400-U+04FF俄语 / 乌克兰语 / 保加利亚语等
通用标点符号U+2000-U+206F-, … " " ' ' • † NBSP ZWSP
货币符号U+20A0-U+20CF€ £ ¥ ₩ ₽ ₹ ₿
字母状符号U+2100-U+214F™ ℠ № ℃ ℉ ℗
箭头U+2190-U+21FF← → ↑ ↓ ↔ ⇒ ⇐
数学运算符U+2200-U+22FF∑ ∫ ∞ √ ≠ ≤ ≥ ± ∂ ∇ ∈ ∪ ∩
框线绘制U+2500-U+257F─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ═ ║ ╔ ╗
数学字母数字符号U+1D400-U+1D7FF「花式文字」生成器(𝓗𝓮𝓵𝓵𝓸)来源于此。

日常写作中的特殊字符

「只需输入一个符号」使用场景的快速参考,这正是本工具存在的核心价值,两次点击即可完成:

何时需要字符映射表

安全:同形异义攻击问题

许多Unicode字符在不同文字体系中外观完全相同。西里尔字母小写「а」(U+0430)与拉丁字母「a」(U+0061)在视觉上无法区分。攻击者注册看似合法的国际化域名(例如用西里尔字母а替换拉丁a组成的「apple.com」)实施网络钓鱼。2017年,针对 adoḅe.com 的攻击使用了下点ḅ(U+1E05)传播恶意软件。现代浏览器通过限制性的文字混合规则加以防范,当域名混合使用不同文字时,会回退到ASCII Punycode形式(xn--…);Safari在这方面尤为保守。使Unicode在人类书写中大放异彩的同形异义属性,在域名中却埋下了危险,字符映射表正是一眼确认每个字符实际码位的有效工具。

更多问题

字符与字形有何区别?

字符是Unicode编码的抽象单位,即字母A本身,不依赖于任何字体。字形是该字符在特定字体中的具体呈现:Helvetica中的A、Garamond中的A、Comic Sans中的A是同一个字符,却是三种不同的字形。Unicode编码字符;字体承载字形。

为什么Unicode 1.0只有约7,000个字符,而17.0已达160,000个?

Unicode 1.0涵盖24种文字,覆盖了当时计算机常规使用的世界主要现行书写体系。此后的增长来自三个方面:大幅扩展CJK表意字符收录范围(纳入历史汉字和罕见地区变体,扩展J仅在17.0版本中就新增了4,298个字符)、正式编码历史文字(线形文字B、楔形文字、埃及象形文字、腓尼基文字),以及自2010年起收录emoji。

什么是HTML实体?

一种在HTML内部使用特殊转义语法编码字符的方法。对于常用字符有命名实体(© 表示©,— 表示-),对于任意码位有数字实体(♥♥ 表示♥)。在直接输入字符不便时(如混合编码的源代码中,或在会过滤非ASCII字符的系统中)非常有用。

什么是CSS转义?

CSS使用反斜杠加十六进制码位:.heart::before { content: "\2665"; } 插入♥。常用于 ::before / ::after 生成内容、CSS计数器样式,以及任何无法依赖源文件编码的场合。

有任何内容会发送至服务器吗?

不会。字符数据随页面一同打包分发;搜索和分类筛选在JavaScript中本地运行;复制功能使用浏览器的剪贴板API。没有任何内容离开您的设备,页面加载后即可离线使用。

相关工具

HTML 实体编码 / 解码器,免费 大小写转换器 HTML 实体编码 / 解码器,免费