如何确定一个字符是否有效-for / render-in html?

时间:2013-12-17 07:58:58

标签: python html

某些字符,例如序数22或8,不会显示在html中(使用chrome,例如将它们复制并粘贴到此'Ask question'编辑器中;我假设为utf-8)。如何确定哪些字符是有效的html,哪些是有效的,哪些是呈现的?

表/引用会很有帮助(我无法通过google-ing找到),但最好是我需要一套可以在python中实现的规则或解决方案。

2 个答案:

答案 0 :(得分:0)

Blender来自wikipedia的回复:

  

HTML禁止[8]使用具有通用字符的字符   设置/ Unicode代码点

     
      
  • 0到31,除了9,10和13(C0控制字符)
  •   
  • 127(DEL字符)
  •   
  • 128至159(x80 - x9F,C1控制字符)
  •   
  • 55296至57343(xD800 - xDFFF,UTF-16替代品一半)
  •   
     

Unicode标准也禁止:

     
      
  • 65534和65535(xFFFE - xFFFF),非字符,与xFEFF相关,字节顺序标记。
  •   
     

这些字符甚至不被引用所允许。那是你   甚至不应该将它们写为数字字符引用。然而,   对字符128-159的引用通常由lenient解释   Web浏览器就好像它们是对分配给的字符的引用一样   Windows-1252字符编码中的字节128-159(十进制)。这个   违反了HTML和SGML标准,而且字符是   已分配给更高的代码点,因此HTML文档作者   应该始终使用更高的代码点。例如,对于   trademark sign(™),use™,not™。

     

字符9(标签),10(换行)和13(回车)是   在HTML文档中允许,但是,32(空格)都是   被认为是“空白”。[9] “换页”控制字符,即   将在12,HTML文档中不允许,但也是   被称为“白色空间”角色之一 - 也许是一个   监督规范。在HTML中,大多数连续出现   白色空格字符除了块外,被解释为   包括用于渲染目的的单个“单词分隔符”。一个字   separator通常在欧洲呈现单个宽度空间   语言,但不是所有其他语言。

答案 1 :(得分:0)

HTML中的有效字符取决于您对“HTML”和“有效”的定义。不同的HTML版本对正式有效字符具有不同的规则,并且它们可能具有有效但不推荐的字符。此外,还有一些一般政策,如赞成标准化表格C;虽然不是HTML规范的一部分,但这些策略通常也被视为与HTML相关。

呈现的内容(以及如何呈现)取决于浏览器,HTML文档的样式表以及用户计算机中的可用字体。而且,并非所有字符都是这样呈现的。例如,在普通的HTML内容中,任何连续的空白字符序列都被视为等同于单个空格字符。

所以答案真的是“这取决于。”考虑提出一个更具针对性的实际问题,以获得更有针对性的答案。