Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取utf-8文件(javascript XMLHttpRequest)会产生不好的欧洲字符_Javascript_Encoding_Utf 8_Xmlhttprequest - Fatal编程技术网

读取utf-8文件(javascript XMLHttpRequest)会产生不好的欧洲字符

读取utf-8文件(javascript XMLHttpRequest)会产生不好的欧洲字符,javascript,encoding,utf-8,xmlhttprequest,Javascript,Encoding,Utf 8,Xmlhttprequest,有人能帮忙吗?我有一个小程序,可以使用XMLHttpRequest通过javascript读取UTF-8文件。。这个文件有欧洲字符,如米尔科尔斯·萨巴多等。。注意口音 但是当被读入时。。这些角色都搞砸了。。我查过文件了,它很完美。。这必须是读入的程序 这里有一个例子,我有一个文件,其中包含,该文件是完美的,它恰好是javascript,但这并不重要。。任何带有特殊字符的UTF-8编码文件都会给我带来同样的问题 this.weekDays=新数组(“Lunes”、“Martes”、“Miércol

有人能帮忙吗?我有一个小程序,可以使用XMLHttpRequest通过javascript读取UTF-8文件。。这个文件有欧洲字符,如米尔科尔斯·萨巴多等。。注意口音

但是当被读入时。。这些角色都搞砸了。。我查过文件了,它很完美。。这必须是读入的程序

这里有一个例子,我有一个文件,其中包含,该文件是完美的,它恰好是javascript,但这并不重要。。任何带有特殊字符的UTF-8编码文件都会给我带来同样的问题

this.weekDays=新数组(“Lunes”、“Martes”、“Miércoles”、“Jueves”、“Viernes”、“Sábado”、“Domingo”)

但是当通过下面的过程返回并读取时,它是这样的(注意sabado和miercoles中的有趣字符)

this.weekDays=新阵列(“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;

编辑:这个答案虽然被接受,但似乎不是最理想的,所以对于有类似问题的人,请查看

我认为您必须使用不同的方式来打印字符,例如,请参见以下末尾的代码:


函数getUnicode(num){
num=num.toString(16);
如果(数量长度<3){
对于(变量i=num.length;i<4;i++){
num='0'+num;
}
}
返回(&#“+num+”);
}
对于(变量i=0;i<65355;i++){
document.write(getUnicode(i));
}

我也有同样的问题,我用这种方式解决了

如果您将包含西班牙语天数的js文件作为UTF-8提供,而If没有保存为UTF-8,那么它将无法工作

在IDE中将文件保存为UTF-8(即eclipse默认js文件为cp1252),并将其作为UTF-8字符编码

如果您的应用程序是java,请使用以下代码进行筛选:

response.setCharacterEncoding("UTF-8");

有一个好的

可能您的文件不是UTF-8格式的,然后从javascript尝试以下操作:

var request = new XMLHttpRequest();
request.open("GET", path, false);
request.overrideMimeType('text/xml; charset=iso-8859-1');

我也面临同样的问题,我是这样解决的,

在Get请求中,我们通过url发送数据 因此,我对url进行解码,并通过字符串操作获取请求的参数

考虑一下,如果您发送的url是这样的, var ur1=“getSubjectList.jsp”; ur1+=“?主题列表=“+str+”&examId=“+examId

open(“GET”,ur1,true); xmlHttp.send(空)

在getSubjectList.jsp中,使用-- 字符串decodedParams=urldecker.decode(request.getQueryString(),“utf-8”)

字符串参数[]=decodedParams.split(&)


这样,您就可以获得请求的值

您确定该文件是UTF-8格式的吗?您是否将文本编辑器设置为使用该编码显式保存?将请求设置为UTF-8是不相关的,答案真的是UTF-8和响应中设置的相应标头吗?thgis是旧的,但对于在这方面遇到障碍的任何人,请使用.overrideMetype('text/plain;charset=utf8');我确信我的文件是UTF-8编码的,但是服务器没有返回这个字符集头,所以这就解决了问题。@Dinei如果这个代码段对您有效,这意味着您的输出不是UTF8格式的。某些服务器提供程序可能会修改您的输出。我建议在《邮递员》中试试,并检查标题。我有一个UTF-8编码的
.json
文件,但出于某种原因,它被提供了
内容类型:text/plain;字符集=ISO-8859-1
标题。使用
overrideMimeType
charset=UTF-8
解决了我的问题。对不起,这个问题是关于javascript的,不是关于java的。
var request = new XMLHttpRequest();
request.open("GET", path, false);
request.overrideMimeType('text/xml; charset=iso-8859-1');
     String subjectlist[]=params[0].split("=");
     String examId[] = params[1].split("=");
     String center = subjectlist[1];
    String exam = examId[1];