【发布时间】:2010-11-04 11:59:06
【问题描述】:
谁能帮忙?我有一个小程序可以使用 XMLHttpRequest 读取带有 javascript 的 UTF-8 文件。这个文件有欧洲字符,如 miércoles sábado 等。注意重音..
但是在读入的时候..字符都乱了..我检查了文件,它是完美的..一定是读入的程序..
这是一个示例,我有一个包含文件的示例,该文件是完美的,它恰好是 javascript,但没关系.. 任何带有特殊字符的 UTF-8 编码文件都会给我同样的问题
this.weekDays = new Array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
但是当返回并通过下面的程序读取时,它是这样的(注意 sabado 和 miercoles 中的有趣字符)
this.weekDays = new Array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
这是我的程序 - 它非常小......
var contentType = "application/x-www-form-urlencoded; charset=utf-8";
var request = new XMLHttpRequest();
request.open("GET", path, false);
request.setRequestHeader('Content-type', contentType)
if (request.overrideMimeType) request.overrideMimeType(contentType);
try { request.send(null); }
catch (e) { return null; }
if (request.status == 500 || request.status == 404 || request.status == 2 || (request.status == 0 && request.responseText == '')) return null;
//PROBLEM HERE is with european charcters that are read in
print(request.responseText);
return request.responseText;
【问题讨论】:
-
您确定文件是 UTF-8 格式吗?您是否将文本编辑器设置为使用该编码明确保存?将请求设置为 UTF-8 无关紧要,答案真的是 UTF-8 和响应中设置的相应标头吗?
-
thgis 已经过时了,但对于遇到此问题的任何人,请使用来自MDN Using XMLHttpRequest 的 xmlhttprequest 对象的 .overrideMimeType('text/plain; charset=utf8'); 方法
标签: javascript encoding utf-8 xmlhttprequest