读取UTF-8文件(JavaScript的XMLHttpRequest的)给出了不良的欧洲字符(re

2019-06-23 18:24发布

谁能帮助? 我有小程序使用XMLHttpRequest的..这个文件有欧洲字符,如miércolessábado等。注意口音与JavaScript在UTF-8读取文件..

但被读取时..人物都搞砸了。我已经检查了文件,它是完美的。它必须是程序在读..

下面有一个例子,我有文件,其中包含,该文件是完美的,它正好是JavaScript,但它并不重要。与特殊字符的任意UTF-8编码的文件给了我同样的问题

this.weekDays =新的Array( “星期一”, “星期二”, “星期三”, “星期四”, “星期五”, “星期六”, “星期天”);

而是由程序返回,读取时下面就是这个样子(请注意sabado和miercoles有趣的字符)

this.weekDays =新的Array( “星期一”, “星期二”, “星期三米娅©”, “星期四”, “星期五”, “Sábado”, “星期天”);

这里是我的程序 - 它非常小...

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;

Answer 1:

我认为你必须使用不同的方法来打印的字符,例如,看到代码在结束讨论 :

<script>
  function getUnicode(num) {
    num = num.toString(16);
    if (num.length < 3) {
      for ( var i = num.length; i < 4; i++) {
        num = '0' + num;
      }
    }
    return ( "&#" + num + ";" );
  }

  for ( var i = 0; i < 65355; i++) {
    document.write(getUnicode(i));
  }
</script>


Answer 2:

也许你的文件不是UTF-8,然后从JavaScript试试这个:

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


Answer 3:

我有同样的问题,我固定在这个方式。

如果你提供包含西班牙语天js文件为UTF-8,如果没有保存为UTF-8就不会工作。

保存在您的IDE文件为UTF-8(即日食默认js文件将CP1252),并为它服务为UTF-8字符编码。

如果您的应用程序是用java,做这个代码过滤器:

response.setCharacterEncoding("UTF-8");

祝你有个好的一天



Answer 4:

我也面临同样的问题,我已经以这种方式解决,

虽然在Get请求,我们是通过URL发送数据所以我解码的URL并获得通过请求字符串操作参数

试想,如果你是这样的,VAR UR1 =“getSubjectList.jsp”发送的网址; “?subjectlist =” UR1 + = + STR + “&examId =” + examId;

xmlHttp.open( “GET”,UR1,真正的); xmlHttp.send(NULL);

在getSubjectList.jsp,使用this--字符串decodedParams = URLDecoder.decode(request.getQueryString(), “UTF-8”);

串PARAMS [] = decodedParams.split( “&”);

     String subjectlist[]=params[0].split("=");
     String examId[] = params[1].split("=");
     String center = subjectlist[1];
    String exam = examId[1];

通过这种方式,你可以得到所要求的值



文章来源: reading in utf-8 file (javascript XMLHttpRequest) gives bad european characters