[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 581
  • Last Modified:

AJAX and HTML encoding problem

I have a problem with encoding with AJAX.

I am not using a framework, just standard javascript. Through AJAX I load a HTML file and display the responseText inside a div (innerHTML = req.responseText).

The problem is that it does not load a client-server request, but a regular HTML file, so the encoding goes crazy and things like á , é, í, etcetera are not displayed correctly. I would like to know if there is some way to indicate the XHMTLRequest object to load the response in a given encoding, or to give the HTML file that is loaded an specific header for the Ajax request to understand it correclty.
0
LeGrandi
Asked:
LeGrandi
  • 5
  • 4
1 Solution
 
Dave BaldwinFixer of ProblemsCommented:
It should display using the character set of the page that is loading it.  Is it the same as the page you are loading thru AJAX?  These pages are the most complete description of using AJAX that I have found: http://www.javascriptkit.com/dhtmltutors/ajaxgetpost.shtml
0
 
LeGrandiAuthor Commented:
Actually it works that way in Chrome, but not in Firefox or IE. How should I indicate in the html page which is loaded the charset?
0
 
Dave BaldwinFixer of ProblemsCommented:
Use this line in the header, preferably as the first line below <header>.
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LeGrandiAuthor Commented:
It still doesn't work
0
 
Dave BaldwinFixer of ProblemsCommented:
Does the encoding on the original page and the AJAX page match?
0
 
LeGrandiAuthor Commented:
The ajax, indeed, is not a Full page with <html></html> and <body></body>, but an HTML fragment and now has a <head></head> with the meta content-type inside
0
 
Dave BaldwinFixer of ProblemsCommented:
Ok, the only way I was able to get the same encoding on the original page and the AJAX page is to force UTF-8 encoding.  Apparently javascript uses Unicode/UTF-8.  Trying to pass the Latin-1 characters thru it screws up the encoding and display.

Though some of my editors will read UTF-8, it was a real pain to get them to generate it.  Whatever they say, " á , é, í, " is not the same in Latin-1 and UTF-8.  Remove the <head></head> section from your AJAX text and find a way to force it to UTF-8 and use the meta header I gave you above.  Like I said, that's the only way I could find to make it work.
0
 
LeGrandiAuthor Commented:
Hi,

it definitely doesn't work, so I will html encode the conflictive characters which is far simpler.

Thanks
0
 
LeGrandiAuthor Commented:
Not total solution.
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now