supergiox
supergiox

Reputation: 1596

Different encoding issue

I'm writing an android app that implements a web server that sends pages containing text messages. By client side I developed a web interface. This interface contains some DIVs that are filled using ajax and in particular with this functions that gets a page and put it into a specified div:

function getElementFromId(myElement) {
    var elem;
    if(document.getElementById)
        elem = document.getElementById(myElement);
    else
        elem = document.all[myElement];
    return elem;
}


function getXMLHttpRequest() {
    var XHR = null, browser = navigator.userAgent.toUpperCase();
    if(typeof(XMLHttpRequest) == "function" || typeof(XMLHttpRequest) == "object")
    XHR = new XMLHttpRequest();
    else if(window.ActiveXObject && browser.indexOf("MSIE 4") < 0) {
    if(browser.indexOf("MSIE 5") < 0)
    XHR = new ActiveXObject("Msxml2.XMLHTTP");
    else
    XHR = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return XHR;
}


function pageInDiv(nomeFile,divId) {
  var ajax = getXMLHttpRequest(), elem = getElementFromId(divId),
  usaLink = true; 
  if(ajax) {
    usaLink = false;
    ajax.open("get", nomeFile, true);
    //ajax.setRequestHeader("connection", "close");
    ajax.onreadystatechange = function() {
      if(ajax.readyState == 4) {
       if(ajax.status == 200)
         elem.innerHTML = ajax.responseText;
        else 
         elem.innerHTML += "Error: " + statusText[ajax.status];
      } 
    }
    ajax.send(null);
  }  
  return usaLink;
} 

Now there's the problem! When I call pageInDiv("pageWithText.html",myDiv) the div is filled correctly, except for accented caracters. If the text contains àèìòù, the div will contain strange symbols, but (this is the strangest thing) if I open the page http://.../pageWithText.html directly in the browser it appears perfectly!

What's the problem? Thank you in advice

Update

This a piece of the web interface code:

<body onLoad=" pageInDiv('conversations.html', 'conversations');>

And this is the code of conversations.html:

<div id="conversations" class="list">
<div id="main">
<div id="msgTitle">Io</div>
<div id="message"><div id="img">
<img class="convimg" src="contactphoto_8259.jpg"></div>
<div id="text">������</div></div><div id="line"></div>
</div>

Upvotes: 1

Views: 297

Answers (1)

PinoSan
PinoSan

Reputation: 1508

You should try to include the following code in the html page where you have these encoding problems

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html>
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
...
</head>

If this encoding it's not working (I doubt it) you can try with different code from this page.

Upvotes: 1

Related Questions