Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为甚么?;朗;及;响;角色处理得这么奇怪?_Html_Character - Fatal编程技术网

Html 为甚么?;朗;及;响;角色处理得这么奇怪?

Html 为甚么?;朗;及;响;角色处理得这么奇怪?,html,character,Html,Character,有一个叫做“杂项技术”的章节。该部分包含的两个字符是“左尖括号”(⟨和&9001;)和“右尖括号”(⟩和&9002;)。这些字符有一些奇怪的地方(以下列表中的前三项是在运行Android 4.4.4的我的第一代Moto X上测试的): 在Android上的Chrome 43.0.2357.93中,所有四个实体(⟨、&9001;、⟨、以及&9002;)都是不可见的(它们看起来就像空格) 在Android上的Opera 30.0.1856.92967中,所有四

有一个叫做“杂项技术”的章节。该部分包含的两个字符是“左尖括号”(
⟨
&9001;
)和“右尖括号”(
⟩
&9002;
)。这些字符有一些奇怪的地方(以下列表中的前三项是在运行Android 4.4.4的我的第一代Moto X上测试的):

  • 在Android上的Chrome 43.0.2357.93中,所有四个实体(
    ⟨
    &9001;
    ⟨
    、以及
    &9002;
    )都是不可见的(它们看起来就像空格)
  • 在Android上的Opera 30.0.1856.92967中,所有四个实体都是不可见的(它们看起来就像空间)
  • 在Android上的Firefox 38.0.5中,两个命名实体(
    ⟨
    ⟩
    )看起来像黑色块,但两个编码实体(
    &9001;
    &9002;
    )看起来是正确的
  • 我使用Xcode的iOS模拟器来模拟运行iOS 8.3(12F69)的iPhone 5s。然后我在Safari中加载了链接。所有四个实体看起来都是正确的,但两个命名实体(
    ⟨
    ⟩
    )与两个编码实体(
    &9001;
    &9002;
    )看起来非常不同
  • 如果您将页面转换为HTML5并运行它,它会输出关于两个编码实体(
    〈;
    〉;
    )的“警告:文本运行不是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>"&lceil;"</td>
        <td>"&#8968;"</td>
        <td>left ceiling = apl upstile</td>
      </tr>
      <tr>
        <td>rceil</td>
        <td>8969</td>
        <td>"&rceil;"</td>
        <td>"&#8969;"</td>
        <td>right ceiling</td>
      </tr>
      <tr>
        <td>lfloor</td>
        <td>8970</td>
        <td>"&lfloor;"</td>
        <td>"&#8970;"</td>
        <td>left floor = apl downstile</td>
      </tr>
      <tr>
        <td>rfloor</td>
        <td>8971</td>
        <td>"&rfloor;"</td>
        <td>"&#8971;"</td>
        <td>right floor</td>
      </tr>
      <tr>
        <td>lang</td>
        <td>9001</td>
        <td>"&lang;"</td>
        <td>"&#9001;"</td>
        <td>left-pointing angle bracket = bra [1]</td>
      </tr>
      <tr>
        <td>rang</td>
        <td>9002</td>
        <td>"&rang;"</td>
        <td>"&#9002;"</td>
        <td>right-pointing angle bracket = ket [2]</td>
      </tr>
    </table>
    
    杂项技术
    [1] lang与U+003C“小于”或U+2039“单左指向角引号”的字符不同
    [2] 范围与U+003E“大于”或U+203A“单直角引号”的字符不同 实体 代码 命名 编码 描述 lceil 8968 “&lceil;” "⌈" 左天花板=apl上部瓷砖 赛尔 8969 “&rceil;” "⌉" 右天花板 地下室 8970 “&lfloor;” "⌊" 左地板=apl下瓷砖 地板 8971 “&rfloor;” "⌋" 右层 朗 9001 “&lang;” "〈" 左尖角括号=bra[1] 响 9002 “&rang;” "〉" 右尖角括号=ket[2]
    根据命名字符,引用(实体)的编码与根据HTML 4规范(问题中引用)的编码不同

    &lang作为U+027E8(
    和#10216;

    &rang作为U+027E9(
    &10217;

    实际上,现代浏览器似乎遵循HTML5方法,甚至对于HTML4doctype文档也是如此。它解释了显示
    &lang


    事实
    &lang
    &rang在移动浏览器中未正确呈现可能是因为缺少字体支持

    我想我们会在这里讨论一些历史/杂记。关于标准化,有一些奇怪的问题。更多的是一个“因为有人坐在桌子旁这么说”的问题,而不是我Mac上Chrome上的一个代码问题,
    &lang是,而不是9001。类似于
    &rang和9002。“它们显示为空格”问题是否是由于缺少字体支持造成的;和&rang;是“数学尖括号”,但〈;和〉;是“尖括号”。如果您使用UTF-8编码,在日语中有两个非常相似的符号:〈〉和〉,它们应该在所有浏览器中正确显示(假设它们至少有一种unicode字体)。其实体为:〈〉和《》 (这并没有回答OP的问题,但可能会有所帮助)。