不同的编码问题

时间:2012-01-28 02:30:22

标签: android ajax encoding character-encoding

我正在编写一个Android应用程序,它实现了一个发送包含文本消息的页面的Web服务器。 通过客户端我开发了一个Web界面。这个接口包含一些使用ajax填充的DIV,特别是这个函数可以获取页面并将其放入指定的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;
} 

现在有问题了!当我调用pageInDiv("pageWithText.html",myDiv)时,div被正确填充,除了重音字符。如果文本包含àèìòù,则div将包含奇怪的符号,但是(这是最奇怪的事情)如果我直接在浏览器中打开页面http://.../pageWithText.html它看起来很完美!

有什么问题?谢谢你的建议

更新

这是一个Web界面代码:

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

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

1 个答案:

答案 0 :(得分:1)

您应该尝试在具有这些编码问题的html页面中包含以下代码

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

如果此编码不起作用(我对此表示怀疑),您可以尝试使用this页面中的不同代码。