IE8不呈现一些HTML名称实体

Car*_*oon 3 html character-encoding html-entities

一些HTML名称实体不在IE8中呈现,而是我可以看到未呈现的HTML实体!例如şı.

我找到了一个使用HTML编号实体的解决方案,ş而不是ş.

我不知道是否有人知道这个问题的原因,如果有办法看到şı或类似实体正确IE8?

这是我在jsfiddle上的代码:(如果将此代码复制到HTML文件,它将无法在IE8中呈现)

http://jsfiddle.net/7uBrd/

<HTML lang="TR">
 <HEAD>
  <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
  <TITLE>test</TITLE>
 </HEAD>
 <BODY>
  <p>This is not working in IE8: afi&scedil;ler, e&scedil;yalar&inodot;, k&inodot; </p>
  <p> This is working: afi&;#351;ler, e&#351;yalar&#305;, k&#305; </p>    
  <p>This is Working as well: test&nbsp;test&ndash;</p>
 </BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

Álv*_*lez 6

对命名HTML实体的浏览器支持总是比对数字实体的支持更糟糕.毕竟,该数字是该字符的Unicode代码点,而该名称需要在浏览器的源代码中手动更新查找表.您提到的那些实体从版本8开始就不受Internet Explorer支持(甚至版本9,不知道10).

您已经有一个解决方法,但我建议您只需切换到UTF-8并完全避免实体(除了&amp;和其他合理的例外).

  • IE 10支持这些(几乎无用的)字符引用(即使在Quirks模式中,也令人惊讶).HTML5术语是"字符引用",因为HTML5缺少"实体"概念(在HTML5之前的HTML中不存在`&scedil;`之类的东西).使用数字字符引用是一种解决方案而不是解决方法,并且尽可能使用UTF-8是一种更好的解决方案. (3认同)