Javascript Charset问题

Cat*_*ata 1 javascript character-encoding

我想用javascript从我的服务器读取一个文件,并在html页面中显示它的内容.该文件是ANSI字符集,它有罗马尼亚字符..我想以它们的方式显示这些字符:D不是在不同的黑色符号..

所以我认为我的问题是charset ..我有一个get请求,它接受文件的内容,如下所示:

function IO(U, V) {//LA MOD String Version. A tiny ajax library.  by, DanDavis
var X = !window.XMLHttpRequest ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();
X.open(V ? 'PUT' : 'GET', U, false );
X.setRequestHeader('Content-Type', 'Charset=UTF-8');
X.send(V ? V : '');return X.responseText;}
Run Code Online (Sandbox Code Playgroud)

据我所知,罗马尼亚字符包含在UTF-8字符集中,所以我将请求标头的字符集设置为utf-8 ..文件是utf-8格式,我有元标记告诉浏览器页面有utf-8内容..

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)

因此,如果我向服务器查询直接文件,浏览器会显示罗马尼亚字符,但如果我通过此脚本显示页面内容,我只会看到符号而不是字符..所以我做错了什么?

谢谢!

PS:我希望这可以在Firefox上运行,至少不一定适用于所有浏览器.

Tom*_*lak 5

虽然我最初的假设与TJ Crowder相同,但快速聊天表明OP使用了一些托管服务,并且无法轻松更改Content-Type标头.

文件是在有text/plaintext/html没有任何Charset参数的情况下发送的,因此浏览器将它们解释为UTF-8(这是默认值).

因此,以UTF-8(而不是ANSI/Windows-1252)保存文件就可以了.

  • 我一直在做一个只有 html 页面的原型,我只需右键单击文件夹(窗口)和新文件即可动态创建页面......并且所有内容都用 ANSI 保存(不知道),在这个答案之前我是疯狂地想找出为什么 f"#$%ck UTF-8 元不起作用......现在我可以再次安静地编码了:o) (2认同)