Pregunta

¿alguien puede ayudar? Tengo un pequeño procedimiento para leer en un archivo UTF-8 con javascript usando XMLHttpRequest ... este archivo tiene caracteres europeos como mi & # 233; rcoles s & # 225; bado, etc. Observe los acentos ...

Pero cuando se lee en ... los caracteres están en mal estado ... Revisé el archivo y es perfecto ... debe ser el procedimiento para leer en ...

heres un ejemplo que tengo archivo que contiene, el archivo es perfecto, resulta ser javascript pero no importa ... cualquier archivo de codificación UTF-8 con caracteres especiales me da el mismo problema

this.weekDays = new Array (" Lunes " ;, " Martes " ;, " Mi & # 233; rcoles " ;, " Jueves " ;, " Viernes " ;, " S & # 225; bado " ;, " Domingo ");

pero cuando se devuelve y lee mediante el siguiente procedimiento es así (observe los divertidos personajes de sabado y miercoles)

this.weekDays = new Array (" Lunes " ;, " Martes " ;, " Mi & # 195; & # 169; rcoles " ;, " Jueves " ;, " Viernes " ;, " S & # 195; & # 161; bado " ;, " Domingo ");

Aquí está mi procedimiento: es muy pequeño ...

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;
¿Fue útil?

Solución

Creo que debe usar una forma diferente de imprimir los caracteres, por ejemplo, vea el código al final de esta discusión :

<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>

Otros consejos

Probablemente su archivo no esté en UTF-8, entonces intente esto desde javascript:

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

Tengo el mismo problema y lo solucioné de esta manera.

Si sirve el archivo js que contiene los días españoles como UTF-8 y el if NO se guarda como UTF-8, NO funcionará.

Guarde el archivo en su IDE como UTF-8 (es decir, el valor predeterminado de eclipse para los archivos js será cp1252) y también sirva como codificación de caracteres UTF-8.

Si su aplicación es Java, haga un filtro con este código:

response.setCharacterEncoding("UTF-8");

ten uno bueno

También enfrenté el mismo problema, lo resolví de esta manera,

Mientras que en la solicitud Get, estamos enviando datos a través de la URL Así que decodifiqué la url y obtuve el parámetro solicitado a través de operaciones de cadena

Considera si estás enviando una URL como esta, var ur1 = " getSubjectList.jsp " ;; ur1 + = "? subjectlist = " + str + " & amp; examId = " + examId;

xmlHttp.open (" GET " ;, ur1, verdadero);  xmlHttp.send (nulo);

En getSubjectList.jsp, use esto-- Cadena decodedParams = URLDecoder.decode (request.getQueryString (), " utf-8 ");

String params [] = decodedParams.split (" & amp; ");

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

De esta forma, puede obtener los valores solicitados

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top