在jQuery中更改load()上的charset / encoding

时间:2016-09-12 15:42:30

标签: javascript jquery html encoding load

问题:如何通过jQuery的函数load()更改正在加载的文本文件的编码?

我有1页,index.html其中我已放置了所有cssjshtml,现在我想“提取”标题那个页面。我是通过创建名为“header”的新文件夹来实现的,该文件夹包含header.cssheader.jsheader.html。我也在创建一个模板(适用于所有页面),其中包含标题,因此,此模板的<head>如下所示:

<head>
    <link rel="stylesheet" href="header/header.css" charset="windows-1252">
    <script src="jquery-3.1.0.min.js"></script>
    <script src="header/header.js"></script>
    <script type='text/javascript'>$(document).ready(function(){
               $('body').load('header/header.html');});
    </script>
</head>

这很有效,而且正如我所希望的那样,所以没有问题 问题是塞尔维亚字母如š,đ,ž,č和ć在黑钻石( )中表示为问号。我做了一些研究,发现这是因为浏览器*期待utf8字符集/编码,我的文件(上面列出的)都是 Windows-1252编码。正如您在上面的代码中看到的那样,我确实使用了charset="windows-1252",但这是在<link>中,这是HTML的一部分,但是要将现有页面插入模板页面,我必须使用jQuery,并且它无法为正在加载的文件选择编码。

注意:我正在使用 notepad ++ ,我确实认为编码是windows-1252。此外,我正在使用 Firefox 来预览我的网页,我发现一篇文章说firefox在编码方面遇到了一些问题,但这是一篇旧文章。

2 个答案:

答案 0 :(得分:0)

您是否尝试将编码放入index.html

答案 1 :(得分:0)

所以...我发现发生了什么......仍然不知道原因,但现在它有效。

当我在记事本++中更改编码时,我没有点击Convert to ___,我点击了Encode in ___。我多次更改了编码,最后将其更改回utf-8,但仍然无法正常工作。后来,我注意到有两个选项:Convert to ___Encode in ___,然后我选择Encode in ___。现在它有效。当我说更改时,我的意思是所有文件(header.html header.css header.jstemplate.html)。我不知道notepad++如何使用编码,但如果有人对simmilar或问题进行了总结,那么快速回答是:

UTF-8工作正常。你不需要1252也不需要8859-1 / 2。如果遇到像我这样的问题,请notepad++点击Convert to UTF-8而不是Encode in UTF-8

感谢您的建议,对此有些愚蠢的问题感到抱歉。我只是不知道(并且没有)Convert toEncode innotepad++之间的区别。