指南
2026年3月12日
Unicode 符号:开发者和设计师的完整参考
关于 Unicode 符号你需要知道的一切——从箭头、数学运算符到货币符号和制表符——以及如何在你的项目中运用它们。
Unicode 是现代文本渲染的支柱。你在屏幕上看到的每个字符——从字母“A”到表情符号 🎉 再到数学积分符号 ∫——都有一个唯一标识它的 Unicode 代码点。对于开发者和设计师,理解 Unicode 符号开辟了一个充满可能性的世界:无需图像文件的装饰元素、完美缩放的适用图标、在任何地方正确渲染的技术符号,以及在图像无法使用的纯文本环境中有效的视觉点缀。
什么是 Unicode,它为什么重要?
在 Unicode 出现之前,计算世界分裂为几十种互不兼容的字符编码系统。ASCII 用 128 个代码点覆盖了基本的英文字符。ISO 8859 通过多种区域集对其进行了扩展。Shift JIS 处理日文。Big5 覆盖繁体中文。每种系统都孤立运行,显示来自不同编码的文本会产生乱码——即著名的“文字化け”(mojibake)问题。
Unicode 通过创建单一通用标准解决了这个问题,该标准为每种书写系统中的每个字符分配唯一的代码点。当前版本的 Unicode(16.0,于 2024 年发布)定义了超过 154,000 个字符,涵盖 168 种现代和历史文字,以及数千个符号、技术字符和表情符号。所有主流操作系统、浏览器、编程语言和数据库都支持 Unicode,通常通过 UTF-8 编码实现,该编码已成为网络上的主导字符编码(截至 2026 年,超过 98% 的网站使用)。
对于网页开发者和设计师而言,这种通用性意味着 Unicode 符号可以在任何支持文本的地方使用:HTML 内容、CSS 伪元素、JavaScript 字符串、数据库字段、API 响应、电子邮件内容等。与图片或图标字体不同,Unicode 符号无需外部文件,加载即时,且能缩放到任意尺寸而不损失质量。
常用 Unicode 符号区块
箭头(U+2190–U+21FF及更多)
Unicode 在多个区块中提供了丰富的箭头字符集。这些字符对于 UI 设计、导航元素和技术文档非常宝贵。
U+2190
U+2192
U+2191
U+2193
U+21D0
U+21D2
U+2197
U+21A9
补充箭头区块(U+27F0–U+27FF、U+2900–U+297F)提供了更多选项,包括长箭头(⟶、⟵)、配对箭头(⇄、⇆)和专用技术箭头。如需浏览完整集合,请查看 GetMoji 上的符号专区。
数学运算符(U+2200–U+22FF)
对于技术文档、教育内容和数据驱动型应用至关重要。
正负号
乘号
除号
不等于
小于或等于
大于或等于
无穷
求和符号
货币符号 (U+20A0–U+20CF)
货币符号对于电子商务、金融应用以及国际化内容至关重要。使用正确的 Unicode 符号而非临时替代方案(例如用“EUR”代替€)是专业性和准确性的体现。
美元
欧元
英镑
日元/人民币
卢比
韩元
比特币
土耳其里拉
制表符画线 (U+2500–U+257F)
制表符对于在纯文本环境中(如终端应用、README 文件和等宽字体显示)创建表格、图表和结构化布局至关重要。
┌──────────┬──────────┐ │ Cell 1 │ Cell 2 │ ├──────────┼──────────┤ │ Cell 3 │ Cell 4 │ └──────────┴──────────┘
这些字符包括单线(─、│、┌、┐、└、┘)、双线(═、║、╔、╗、╚、╝)以及混合变体,可完全在文本中构建复杂的表格结构。
杂项符号和丁字符
Unicode 包含数百个散布在多个区块中的装饰性和功能性符号:勾号(✓、✔)、叉号(✕、✖)、星号(★、☆、✦、✧)、心形(♡、♥)、音符(♪、♫)、天气符号(☀、☁、☂)等等。这些符号在网页设计中尤其适合作为轻量级的装饰元素,替代图标字体或 SVG 文件来实现简单的指示标记。
在HTML中使用Unicode符号
在 HTML 中包含 Unicode 符号主要有三种方式:
直接插入:直接将字符粘贴到 HTML 源代码中。由于现代 HTML 文档默认使用 UTF-8 编码,因此这种方法有效。请确保文档包含元字符声明:<meta charset="UTF-8">。
HTML 实体:对于命名实体,使用实体名称(例如,→ 表示 →,♥ 表示 ♥)。对于数字实体,使用十进制(→)或十六进制(→)代码点。
CSS content 属性:在 CSS 伪元素中,通过十六进制代码点前加反斜杠来引用字符:content: '\2192' 表示 →。这对于通过 ::before 和 ::after 伪元素添加装饰性符号特别有用,而无需在 HTML 中添加非语义标记。
在 JavaScript 中使用 Unicode
JavaScript 字符串原生支持 Unicode。你可以直接包含字符,使用转义序列(\u2192 表示 →),或使用针对基本多语言平面之外字符的新代码点语法(\u{1F600} 表示 😀)。String.fromCodePoint() 方法将数字代码点转换为字符,codePointAt() 方法检索字符串中字符的代码点。
在 JavaScript 中处理 Unicode 时,请注意代理对。基本多语言平面之外的字符(高于 U+FFFF 的代码点,包括大多数表情符号)在内部表示为两个 UTF-16 代码单元。这意味着 '😀'.length 返回 2,而不是 1。使用 Array.from(string) 或扩展运算符 [...string] 来正确遍历字符,包括基本多语言平面之外的字符。
可访问性考量
Unicode 符号带来了开发者必须应对的无障碍挑战:
- 屏幕阅读器行为不一。 有些屏幕阅读器会读出 Unicode 符号的名称,有些会跳过,还有些则读法不一致。一个直观的箭头(→)可能在某个屏幕阅读器中被读作“向右箭头”,而在另一个中被忽略。
- 不要仅依靠符号来传达含义。如果箭头表示导航方向,请搭配文字说明。如果勾号表示成功,请包含文字标签。使用
aria-label或aria-hidden="true"(结合视觉隐藏的文字替代方案)来确保辅助技术传达预期含义。 - 装饰性符号应向辅助技术隐藏。如果符号纯粹是装饰性的,请将其包裹在
<span aria-hidden="true">中,以防止屏幕阅读器朗读它。 - 不应仅靠颜色和符号来编码状态。 用红色 ✕ 和绿色 ✓ 表示错误/成功状态,对色盲用户和屏幕阅读器用户不够友好。务必附带文字标签。
有关如何让所有形式的数字表达都具备可访问性的详细指南,请参阅我们的表情符号可访问性文章。
字体支持与渲染
并非所有字体都支持所有 Unicode 字符。当浏览器遇到指定字体中不存在的字符时,会回退到支持该字符的系统字体。这种回退行为意味着你精心挑选的符号可能以与周围文本不同的字体渲染,造成视觉上的不一致。
为缓解这一问题,可考虑以下策略:
- 跨平台测试。一个在 macOS 上渲染精美的符号,在 Windows 或 Linux 上可能因系统字体不同而看起来不一样。
- 使用覆盖广泛符号的网页字体。 Google Fonts 中的 Noto Sans 和 Noto Serif 专为跨文字和符号区块的通用 Unicode 覆盖而设计。
- 提供字体栈。 在 CSS 的
font-family声明中按偏好顺序列出字体,并以通用字体系列结尾。对于符号密集的内容,建议在字体栈中加入“Segoe UI Symbol”(Windows)和“Apple Symbols”(macOS)。 - 检查 Unicode 区块。来自广泛支持区块(基本拉丁语、拉丁语扩展、箭头、数学运算符)的字符在各平台上渲染一致。来自较少见区块的字符可能需要特定的字体支持。
设计师的实用场景
在以下几种场景中,Unicode 符号为设计师提供了图标库的轻量级替代方案:
- 面包屑分隔符:使用 › (U+203A) 或 » (U+00BB) 代替自定义的 SVG 箭头。
- 列表标记:使用 ◆、▸ 或 ✦ 替换标准项目符号,通过 CSS
list-style-type或::marker实现。 - 评分展示: 组合 ★ 和 ☆ 可实现无需任何图片资源的简易星级评分。
- 状态指示器: 使用不同颜色的 ●(实心圆)表示在线/离线状态,或使用 ✓/✕ 表示成功/错误。
- 装饰性符号:像 ※、❧、✿ 和 ❖ 这样的字符可为标题和分隔线增添视觉趣味。
浏览并复制你需要的任何符号,请访问 GetMoji 的符号集,该集合将数千个 Unicode 字符按可搜索的分类整理,方便快速查找。
展望未来
Unicode 联盟继续通过每个新版本扩展标准。16.0 版新增了几个文字区块和符号,而 17.0 版的提案包括更多技术符号、历史文字字符以及更多表情符号。对于开发者和设计师而言,关注 Unicode 更新可确保你能在平台支持推出时充分利用新字符。
Unicode 符号仍然是网页专业人士工具箱中最被忽视的工具之一。它们免费、通用、(正确使用时)无障碍、且可无限缩放。无论你是在构建导航组件、格式化技术文档,还是为营销页面增添视觉亮点,合适的 Unicode 符号都能替代图片、减少加载时间,并为每位用户提升体验。
GetMoji 团队
Web开发专家