# 实体和数字字符引用
可以使用有效的 HTML 实体引用和数字字符引用来代替相应的 Unicode 字符,但以下情况除外:
在代码块和行内代码中无法识别实体和字符引用。
实体和字符引用不能代替在 CommonMark 中定义结构元素的特殊字符。 例如,虽然
*
可用于代替字面量的*
字符,*
不能替代 在强调分隔符,无序列表标记或专门的换行中的*
。
符合 CommonMark 的解析器无需使用 Unicode 字符或实体引用,来存储有关特定字符是否在源中表示的信息。
实体引用 (opens new window)包含 &
+ 任何有效的HTML5实体名 + ;
。文档https://html.spec.whatwg.org/multipage/entities.json (opens new window)是一个有效实体引用和相应代码的权威来源。
示例 321
Markdown | HTML | 效果 |
---|---|---|
|
|
十进制字符 (opens new window)由&#
+ 包含 1-7 个阿拉伯数字的字符串 + ;
组成,数字字符引用被解析为相应的 Unicode 字符。 无效的 Unicode 代码点将替换为 REPLACEMENT CHARACTER(U+FFFD
)。 出于安全原因,代码点U+0000
也将被U+FFFD
替换。
示例 322
Markdown | HTML | 效果 |
---|---|---|
|
|
十六进制字符 (opens new window)由 &#
+ X
或 x
+ 1-6 个十六进制数字 + ;
组成,它们也被解析为相应的 Unicode 字符(这次使用十六进制数字而不是十进制数字)。
示例 323
Markdown | HTML | 效果 |
---|---|---|
|
|
以下是一些非实体引用:
示例 324
Markdown | HTML | 效果 |
---|---|---|
|
|
尽管 HTML5 中使用了一些没有尾随分号的实体引用(例如©
),在这里没有识别,因为这会混淆语法。
示例 325
Markdown | HTML | 效果 |
---|---|---|
|
|
不在 HTML5 命名实体列表中的字符串也不会被识别为实体引用:
示例 326
Markdown | HTML | 效果 |
---|---|---|
|
|
除了行内代码或代码块(包括 URL,链接标题 (opens new window),围栏代码块 (opens new window)和信息字符串 (opens new window))之外,实体和数字字符引用可以在任何上下文中被识别:
示例 327
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 328
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 329
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 330
Markdown | HTML | 效果 |
---|---|---|
|
|
实体和数字字符引用在行内代码和代码块中被视为文字文本:
示例 331
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 332
Markdown | HTML | 效果 |
---|---|---|
|
|
实体和数字字符引用不能用于代替表示 CommonMark 文档中结构的符号。
示例 333
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 334
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 335
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 336
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 337
Markdown | HTML | 效果 |
---|---|---|
|
|