2

我正面臨一個奇怪的問題。在HTML中的文本有口音,例如:DOM的字符集與屏幕上顯示的不同

<p>é</p> 

它在屏幕(E)顯示正確,但DOM實例裏面的內容不接受口音。它顯示一個「?」字符而不是帶有口音的字符。

在我的情況下,我使用chrome擴展在Kindle(http://read.amazon.com)中注入javascript代碼,但不認爲它真的相關,因爲我可以使用chrome控制檯查看問題。

HTML結構的簡化版本:

<html> 
    <head> 
     ... 
     <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
     ... 
    </head> 
    <body> 
     ... 
     <iframe id="KindleReaderIFrame"> 
      <html> 
       <head> 
        ... 
        <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
        ... 
       </head> 
       <body> 
        ... 
        <iframe id="column_0_frame_0"> 
         <html> 
          <head> 
           <!-- Do not have the Content-Type meta tag --> 
          </head> 
          <body> 
           <!-- Text with accents that I intend to get through DOM --> 
          </bady> 
         </html> 
        </iframe> 
        ... 
       </body> 
      </html> 
     </iframe> 
     ... 
    </body> 
</html> 

我想要的文字是 「column_0_frame_0」 iframe內。

+1

可能的[iFrames和編碼]重複(http://stackoverflow.com/questions/4270847/iframes-and-encodings) – 2013-03-21 20:07:25

+0

我測試了上述主題中描述的情況,但問題似乎有點不同。在引用的主題中,在我的測試中,DOM中的字符和屏幕上顯示的字符具有相同的字符集。 – Raphael 2013-03-22 12:53:29

回答

0

通過您的代碼去,你沒有正確關閉body標籤,見下圖:

<iframe id="column_0_frame_0"> 
    <html> 
     <head> 
     <!-- Do not have the Content-Type meta tag --> 
     </head> 
     <body> 
      <!-- Text with accents that I intend to get through DOM -> 
     </bady> 
    </html> 
</iframe> 

其次,如果要加載在iframe或通過AJAX的內容,其不足以設置的字符集在元標記中,有時它取決於您用來創建代碼的IDE。

要檢查:

  1. 開啓在記事本中相同的代碼++
  2. 下次使用的字符集UTF-8(默認ANSI)的內容。
  3. 在本地服務器上運行代碼而無需在任何其他IDE中打開該文件。

現在,您將能夠在DOM和屏幕中正確呈現重音符號。