【发布时间】:2015-08-27 23:15:32
【问题描述】:
http://www-archive.mozilla.org/newlayout/testcases/layout/entities.html 有一个名为“杂项技术”的部分。该部分中包含的两个字符是“左尖括号”(⟨ 和 〈)和“右尖括号”(⟩ 和 〉)。这些字符有一些奇怪的地方(以下列表中的前三项是在我运行 Android 4.4.4 的第一代 Moto X 上测试的):
- 在 Android 上的 Chrome 43.0.2357.93 中,所有四个实体(
⟨、〈、⟩和〉)都是不可见的(它们只是看起来像空格)。 - 在 Android 上的 Opera 30.0.1856.92967 中,所有四个实体都是不可见的(它们只是看起来像空格)。
- 在 Android 上的 Firefox 38.0.5 中,两个命名实体(
⟨和⟩)看起来像黑色块,但两个编码实体(〈和〉)看起来正确。 - 我使用 Xcode 的 iOS 模拟器来模拟运行 iOS 8.3 (12F69) 的 iPhone 5s。然后我在 Safari 中加载了链接。所有四个实体看起来都正确,但两个命名实体(
⟨和⟩)看起来与两个编码实体(〈和〉)非常不同。 - 如果您将页面转换为 HTML5 并通过the validator 运行,它会输出“警告:文本运行不在 Unicode 规范化表单 C 中”。关于这两个编码实体(
〈和〉),但整个页面上没有其他实体收到任何警告或错误。
我认为上面列表中最有趣的项目是最后三个,因为命名实体和编码实体似乎没有得到同等对待。
所有其他角色看起来都很好,至少从我所看到的来看。是什么让这些角色如此奇怪?
这是此问题顶部链接中的“杂项技术”部分,以防万一链接停止工作:
<h3>Miscellaneous Technical</h3>
<table>
<caption align=bottom>
[1] lang is NOT the same character as U+003C 'less than' or U+2039 'single left-pointing angle quotation mark'<br>
[2] rang is NOT the same character as U+003E 'greater than' or U+203A 'single right-pointing angle quotation mark'
</caption>
<tr>
<th>Entity</th>
<th>Code</th>
<th>Named</th>
<th>Coded</th>
<th>Description</th>
</tr>
<tr>
<td>lceil</td>
<td>8968</td>
<td>"⌈"</td>
<td>"⌈"</td>
<td>left ceiling = apl upstile</td>
</tr>
<tr>
<td>rceil</td>
<td>8969</td>
<td>"⌉"</td>
<td>"⌉"</td>
<td>right ceiling</td>
</tr>
<tr>
<td>lfloor</td>
<td>8970</td>
<td>"⌊"</td>
<td>"⌊"</td>
<td>left floor = apl downstile</td>
</tr>
<tr>
<td>rfloor</td>
<td>8971</td>
<td>"⌋"</td>
<td>"⌋"</td>
<td>right floor</td>
</tr>
<tr>
<td>lang</td>
<td>9001</td>
<td>"⟨"</td>
<td>"〈"</td>
<td>left-pointing angle bracket = bra [1]</td>
</tr>
<tr>
<td>rang</td>
<td>9002</td>
<td>"⟩"</td>
<td>"〉"</td>
<td>right-pointing angle bracket = ket [2]</td>
</tr>
</table>
【问题讨论】:
-
我怀疑我们会在这里进入一些历史/杂项。关于标准化有一些奇怪的问题。更多的是“因为有人坐在桌前这么说”的问题,而不是代码问题
-
在我 Mac 上的 Chrome 中,
&lang;是 10216,而不是 9001。&rang;和 9002 也是如此。i.stack.imgur.com/R73tO.png -
“它们显示为空格”问题是否是由于缺乏字体支持引起的?
-
〈和〉是“数学角括号”,但是 〈和 〉是“指向角括号”。
-
如果您使用 UTF-8 编码,在日语中有 2 个非常相似的符号:〈〉和《》,它们应该在所有浏览器中正确显示(假设它们至少有一种 unicode 字体)。它们的实体是:〈〉和《》 (这不能回答 OP 的问题,但可能会有所帮助)。