【问题标题】:Javascript does not display non-standard charactersJavascript 不显示非标准字符
【发布时间】:2012-08-15 13:44:09
【问题描述】:

代码如下:

<script type="text/javascript" charset="UTF-8"> 
    function loadScript("http://www.qppstudio.net/individualdays/noscroll/2012-08-15.js") { 
        document.write('<script type="text/javascript" charset="UTF-8" src="', url, '">', '<', '/', 'script>'); 
    }   
</script>

包含在页眉中:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

页面显示 unicode 字符没有任何问题,除了发布的 javascript 写入页面的部分。脚本在不同域之间下载时是否发生了某种变化?

【问题讨论】:

  • JavaScript 文件是否使用 UTF-8 字符集从服务器发送?
  • 什么 unicode 字符?
  • 您是否尝试使用 document.write 加载脚本?
  • url 变量正在您的函数中使用,但未在您提供的代码中的任何位置设置。我假设您传递给函数的 URL 字符串是为了代表这个 url 变量?

标签: javascript html utf-8


【解决方案1】:

大概吧。这是我第一次看到charset 属性。我不确定你想用它来达到什么目的。如果服务器向您发送带有iso-latin-1 编码的文件,但您告诉浏览器该文件具有UTF-8 编码,应该怎么办?浏览器不会将文件从一种编码转换为另一种编码;您可能希望的最好结果是浏览器尝试将字节流解释为UTF-8,这将不起作用。

正确的解决方案是配置服务器以在 HTTP 响应标头中发送具有正确编码的文件。浏览器将查找此信息并使用此处指定的编码读取字节流。

不要忘记以正确的编码实际发送字节!这意味着:文件读取,复制到输出流+设置编码头,一切都必须完美运行,否则你会遇到奇怪的错误。

【讨论】:

  • 是的,就是这样。 iso-8859-1 就是答案。傻我:/
猜你喜欢
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多