Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

145
Views
Unicode sobre Ajax no se procesa correctamente

He buscado algo relacionado con esto, pero no encontré nada directamente equivalente, y nada que haya ayudado. Tengo una aplicación muy simple que obtiene datos del servidor usando Ajax (vainilla Javascript) pero los caracteres Unicode no se transfieren correctamente. Mi razonamiento es que este es un problema del lado del cliente, porque si accedo a la URL de Ajax directamente desde la barra de direcciones del navegador, se muestra correctamente.

He puesto un archivo console.log en Javascript como lo primero que hace al recibir una respuesta, y ya está dañado en este punto. He agregado xmlhttp.overrideMimeType('text/plain;charset=utf-8'); pero eso no tuvo ningún efecto visible.

Creé una página web mínima que muestra el comportamiento y la puse en mi servidor en http://www.amberel.com/test/unicodetest.htm . Simplemente presione el botón para ejecutar la función Ajax. La URL de Ajax es http://www.amberel.com/test/ajaxunicodetest.htm

Esta es la página web completa:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ajax UTF-8 test</title> <meta name="viewport" id="viewport" content="width=device-width,initial-scale=1"> </head> <body> <div id="id-div-main"> <p>What it should look like: town=Chaitén</p> <button type="button" onclick="buttonAjaxClick()">Ajax</button> <p id="id-p-response"></p> </div> </body> </html> <script> function buttonAjaxClick() { try { var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET", "ajaxunicodetest.htm", true); // Didn't make any difference // xmlhttp.overrideMimeType('text/plain;charset=utf-8'); xmlhttp.send(); xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { console.log(xmlhttp.responseText); document.getElementById("id-p-response").innerHTML = "Ajax response: " + xmlhttp.responseText; } else if(xmlhttp.status == 404) { document.getElementById("id-p-response").innerHTML = "ajaxunicodetest.htm not found"; } else { document.getElementById("id-p-response").innerHTML = "ajaxunicodetest status: " + xmlhttp.status; } } }; } catch(err) { document.getElementById("id-p-response").innerHTML = "ajaxunicodetest: " + err; } } </script>

Estaría muy agradecido por cualquier idea sobre qué intentar a continuación, ya que he estado trabajando en esto durante algún tiempo.

Muchas gracias Andy

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tienes que escribir para overrideMimeType:

 xmlhttp.overrideMimeType('text/xml; charset=iso-8859-1');

Esta respuesta primero se escribió en los comentarios, pero después de discutir con @Amberel, funcionó para él, y la ponemos aquí para que otros también puedan verla.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!