Javascript 更改网页中的选项卡会导致字符无法正确显示

Javascript 更改网页中的选项卡会导致字符无法正确显示,javascript,html,character-encoding,Javascript,Html,Character Encoding,当我尝试在网页中的选项卡之间切换时,一些字符会像m一样正确显示�是的。但是,当我重新加载页面时,字符会正确显示,没有问号符号 我使用了正确的编码 <meta http-equiv="expires" content="0"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control

当我尝试在网页中的选项卡之间切换时,一些字符会像m一样正确显示�是的。但是,当我重新加载页面时,字符会正确显示,没有问号符号

我使用了正确的编码

<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="expires" content="0"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

最后,我找到了一个让它工作的方法:

我在cgi文件中定义了隐藏的输入类型,并从代码中返回了内容类型,这样我就可以检测语言并相应地应用编码(出于某种原因,将UTF-8应用于法语对我不起作用)


因此,我可以根据使用的语言自定义lang变量。希望它也能帮助其他人。

你所说的“标签”到底是什么意思?你试过了吗?HTML文件本身是否编码为UTF-8(请检查您的编辑器或IDE)?关于线程的问题非常类似,您可以尝试一些解决方案。上述线程中给出的方法不起作用。我使用XMLHttpRequest及其open和send方法打开不同的选项卡。但它的结果是给出了>无论我在哪里,在搜索了很多之后,我发现如果我使用,xhr.overrideMimeType('text/xml;charset=iso-8859-1');然后正确打印字符。但我的问题是我想支持不同语言的网页。ISO-8859-1适用于法语,但如果选择捷克语言,也有少数字符无法正确显示。有没有办法先确定使用哪种编码,然后再进行相应的编码?@Ashu
xhr
应该在问题中提到……但是为什么
text/xml
?HTML的MIME类型应始终为
text/HTML;字符集=UTF-8
。理想情况下,这应该在服务器上配置,而不是在客户端。“我想支持不同语言的网页” — 然后使用UTF-8。
<meta charset="utf-8">
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if(this.readyState == this.HEADERS_RECEIVED){
    var contType = xhr.getResponseHeader ("Content-Type");
    }
xhr.open('POST', 'list.cgi', true);
xhr.overrideMimeType(contType);
xhr.send(formData);
var lang = document.getElementById("CurrentLanguage").value;
xhr.overrideMimeType(lang);