【问题标题】:DOM's charset different from the displayed on screenDOM 的字符集与屏幕上显示的不同
【发布时间】:2013-03-11 11:34:20
【问题描述】:

我遇到了一个奇怪的问题。 html 内的文本有重音符号,例如:

<p>é</p>

它在屏幕中正确显示(é),但 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 内。

【问题讨论】:

  • iFrames and encodings的可能重复
  • 我测试了上面主题中描述的情况,但问题似乎有点不同。在引用的主题中,在我的测试中,DOM 中的字符和屏幕上显示的字符具有相同的字符集。

标签: javascript html dom character-encoding google-chrome-extension


【解决方案1】:

通过你的代码,你没有正确关闭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. 在 Notepad++ 中打开相同的代码
  2. 使用字符集 UTF-8(默认 ANSI)保存内容。
  3. 在本地服务器上运行代码,无需在任何其他 IDE 中打开文件。

现在您将能够在 DOM 和屏幕中正确呈现重音符号。

【讨论】:

    猜你喜欢
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    相关资源
    最近更新 更多