2013-03-04 75 views
3

某些HTML名稱實體不在IE8中呈現,而是可以看到未呈現的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> 

回答

6

瀏覽器對已命名的HTML實體的支持一直比支持數字實體差。畢竟,數字是字符的Unicode代碼點,而名稱需要手動更新瀏覽器源代碼中的查找表。你提到的那些實體在版本8(或者甚至是版本9,不知道10)時是不受Internet Explorer支持的。

您已經有一個解決方法,但我建議您只切換到UTF-8並完全避免實體(保存爲&amp;和其他合理的例外)。

+3

IE 10支持這些(幾乎無用的)字符引用(即使在奇怪模式中,令人驚訝)。 HTML5術語是「字符引用」,因爲HTML5缺乏「實體」概念(而HTML5之前的HTML中不存在「&scedil;」之類的東西)。使用數字字符引用是一種解決方案,而不是解決方法,如果可能的話,使用UTF-8是更好的解決方案。 – 2013-03-04 18:46:57

+0

非常感謝你們的回答,我沒有足夠的聲望投票,但是一旦獲得許可,我就會回來投票。 – Carmijoon 2013-03-06 01:22:49