android - 不同的编码问题

标签 android ajax encoding character-encoding

我正在编写一个 android 应用程序,它实现了一个发送包含文本消息的页面的网络服务器。 在客户端,我开发了一个网络界面。该接口(interface)包含一些使用 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直接在浏览器中显示完美!

有什么问题?谢谢指教

更新

这是一段网页界面代码:

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

最佳答案

您应该尝试在存在这些编码问题的 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 的不同代码页面。

关于android - 不同的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9042451/

相关文章:

java - 如何不在每次创建 Activity 时都创建列表

android - com.android.support :design:24. 2.1 中的 float 操作按钮错误

android - java.lang.UnsatisfiedLinkError : dlopen failed: library "/Users/..." not found 错误

javascript - 简单的ajax调用,没有语法错误。还是行不通

Ruby:CSV 编码:IlegalFormatError

jquery - JQM phonegap.js android 应用程序破坏了应用程序 View ?为什么?

javascript - 如何在浏览器上点击后退按钮和页面刷新后重新更新查询

javascript - 延迟 window.print() 直到页面在 ajax 请求中加载以避免空白打印屏幕?

encoding - Handlebars 三重存储以避免转义 html 实体

excel - Microsoft Excel 会破坏 .csv 文件中的变音符号?