我正在编写一个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>
答案 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页面中的不同代码。