【问题标题】:Character encoding changes after window.open()window.open() 后字符编码发生变化
【发布时间】:2011-01-09 13:33:09
【问题描述】:

我调用window.open() 函数的站点是UTF-8,使用<meta> 标签,一切正常,但是一旦我调用该函数并打开另一个具有相同标签的窗口,新的窗口显示奇怪的字符,甚至在页面信息中认为它显示编码保持不变(UTF-8)。

这和我的问题一样: http://bytes.com/topic/javascript/answers/622922-character-encoding-after-window-open

【问题讨论】:

    标签: javascript encoding utf-8 character-encoding hyperlink


    【解决方案1】:

    我遇到了同样的问题。只需在window.open() 中使用unescape(decodeURIComponent( YOUR_URL ))

    例如:window.open(unescape(decodeURIComponent( YOUR_URL )), '_blank');

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      我遇到了完全相同的问题。

      问题原来是我在打开的窗口中设置了“Session.CodePage = 65001”。这搞砸了该会话的字符编码。所以当我刷新“主”页面时,一些字符(如åäö)突然出现乱码。

      解决方案:确保新窗口中的页面不会更改会话的代码页。祝你好运!

      【讨论】:

        【解决方案3】:

        为您的 javascript 标签添加一个 charset="UTF-8" 属性。如果乱码的原因是您包含的javascript,这至少会起作用。

        【讨论】:

          【解决方案4】:

          如果浏览器对两个页面使用相同的编码(显然,确实如此),那么问题一定出在页面本身。它可能包含无效的 UTF-8 开头。

          【讨论】:

          • 不,它是在同一个编辑器中编写的(效果很好)。而且,如果我不在新窗口中打开它,它也可以正常工作。
          • 奇怪...你能在另一个浏览器中重现它吗?
          • 是的,在 FF 3.5 和 ie8 中是一样的。我还添加了一个链接,指向我的问题,关于有同样问题的人。
          猜你喜欢
          • 2013-01-01
          • 1970-01-01
          • 2019-07-12
          • 1970-01-01
          • 2013-09-14
          • 2011-02-11
          • 1970-01-01
          • 2015-08-20
          • 1970-01-01
          相关资源
          最近更新 更多