【发布时间】:2015-04-25 07:36:42
【问题描述】:
grapheme 是写作中最小的“单位”。在英语中,我们通常只会想到字符 A-Z,但其他语言有口音。 UTF 允许您向字符添加重音符号以形成字素。有一个 generalized algorithm 可让您将 UTF 代码点序列分解为逻辑字素簇(其中每个代码点簇代表一个字素)。
举个例子:
̗̘̈̉̊̋
上面的文字中有四个字素:<̖̈̌̍、b、r和>̗̘̈̉̊̋(注意<̖̈̌̍和>̗̘̈̉̊̋实际上只是<和>加上额外的口音)。如果我把它放在 HTML 文档中:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
<̖̈̌̍br>̗̘̈̉̊̋
</body>
</html>
它无法使用我找到的实验验证器进行验证。这些验证器似乎使用代码点而不是字素进行解析,因此抱怨< 后面的重音代码点(无法形成有效的 HTML5 标记)。
鉴于这些验证器是实验性的,我不知道我是否应该完全相信他们的结果。
HTML5 会忽略字素,而只关心代码点吗?
【问题讨论】:
标签: html unicode utf-8 html-parsing