今天做网站时,使用ajax,传入action的编码,在ie中传入的和在firfox中传入的总是不一样,郁闷了一把。我的jsp文件保存格式是utf8,接收与响影也是设置的utf8,在ie中传入的是“gb2312”,在firfox中传入的是utf8。
结果是不知道怎么设置了。最后解决方案是:
<script type="text/javascript">
var xmlHttpRequest;
function display(name){
var url = "mapline?name="+encodeURIComponent(name);//主要在这里对汉字进行一下转换
sendRequest(url);
}
function hide(name){
if(last!=""){
document.getElementById(name).style.display="none";
}
}
function msg(text){
document.getElementById("kehu").innerHTML=text;
}
//ajax取线路数据
function createXMLHttpRequest(){
if(window.ActiveXObject){
try{
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{
xmlHttpRequest = new XMLHttpRequest();
}
}
function sendRequest(url){
createXMLHttpRequest();
xmlHttpRequest.open("get", url);
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlHttpRequest.onreadystatechange=process;
xmlHttpRequest.send(null);
}
function process(){
if(xmlHttpRequest.readyState==4){
if(xmlHttpRequest.status==200){
update();
}
}
}
function update(){
document.getElementById("kehu").innerHTML="";
var xmlmess = xmlHttpRequest.responseXML;
var lines = xmlmess.getElementsByTagName('line');
if(lines.length==0){
document.getElementById("kehu").innerHTML="<center><font style='color:red;font-weight:900' size='2' >暂无旅游线路</font></center>";
}else{
for(var i = 0;i<lines.length;i++){
var id = lines[i].getAttribute("id");
var name = lines[i].getAttribute("name");
var img = document.createElement("img");
img.setAttribute("src", "images/tel.gif");
var a = document.createElement("a");
a.setAttribute("href", "detailed?id="+id);
var tname = document.createTextNode(name);
a.appendChild(tname);
var br = document.createElement("br");
document.getElementById("kehu").appendChild(img);
document.getElementById("kehu").appendChild(a);
document.getElementById("kehu").appendChild(br);
}
}
for(i=1; i <8; i++) { //将国内游全部设为none
document.getElementById("mod"+i).className="menuNo";
document.getElementById("slidingList"+i).className="slidingList_none";
}
document.getElementById("kehu").className="slidingList";//只显示地图的这一个div
}
</script>
服务器接收入下
String name =new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
分享到:
相关推荐
在IT领域,特别是Web开发中,字符编码的处理是一大挑战,尤其是在跨浏览器、跨平台的环境下,如在Ajax请求中遇到的FireFox与IE之间的乱码兼容问题。本文将深入探讨这一问题,并提供详细的解决方案。 ### Ajax与字符...
以下将详细介绍如何解决HTML5在IE10和Firefox下的中文乱码问题。 首先,我们需要理解字符编码的重要性。字符编码决定了计算机如何理解和显示文本,特别是非英文字符。在HTML5中,推荐使用UTF-8编码,因为它支持全球...
- **Firefox (FF)**:与IE不同,FF 默认使用UTF-8编码处理URI,因此在FF下使用GBK编码可能会导致乱码。为确保兼容性,通常需要将服务器配置为支持UTF-8。 2. **服务器配置**: - **Tomcat配置**:在Tomcat的`...
在JQuery的Ajax POST请求中,当尝试向服务器发送包含中文字符的数据时,这些数据在Firefox和Chrome等现代浏览器中可以正常传递并被后台解析,但在Internet Explorer(IE)下却显示为乱码。这通常意味着编码和解码...
然而,这个问题的特殊之处在于,它只在IE浏览器中出现,而在Firefox(FF)和Chrome浏览器中正常显示,这就排除了编码设置不正确的原因。 进一步分析发现,问题可能与浏览器对Ajax请求的处理有关。IE浏览器在处理...
在本文的案例中,作者指出在Firefox下中文数据可以正确显示,而在IE浏览器下出现乱码。作者通过对比两个浏览器提交的数据HTTP头发现,在Firefox中HTTP头的Content-Type指定了字符集为UTF-8,而IE没有指定字符集。...
例如,在Internet Explorer(IE)浏览器与Mozilla Firefox浏览器之间存在不同的行为表现,这主要是由于不同浏览器对于字符编码处理方式的不同导致的。 #### 问题分析 当使用`XMLHttpRequest`对象发送带有中文字符...
当我们在Firefox下测试时,一切正常,但在Chrome或IE内核的浏览器上,用户可能会遇到乱码问题。这通常与页面的字符集设置、HTTP头信息以及jQuery AJAX请求的配置有关。 首先,确保整个应用的编码统一性至关重要。从...
例如,IE和Firefox可能在处理URL编码时有所不同。在IE中,可能需要先对参数进行`encodeURIComponent()`编码,然后再发送。而在Firefox中,可能需要进行两次`encodeURIComponent()`操作,或者直接使用`encodeURI()`。...
- 不同浏览器的兼容性处理:现代浏览器(IE7及以上、Firefox等)使用window.XMLHttpRequest创建Ajax对象,而IE6等较老版本浏览器使用ActiveXObject("Microsoft.XMLHttp")。 3. Ajax发送GET请求的方法 - 使用Ajax...
总结来说,文章提出的通过JavaScript设置MIME类型和自定义编码转换函数的方法,可以针对特定浏览器(IE和Firefox)解决AJAX请求数据乱码的问题。对于其他浏览器和服务器端的编码处理,仍然需要根据实际情况进行调整...
总之,`tableExport`结合Base64编码提供了一种方便的数据导出方式,但在处理中文字符和老版本IE浏览器时需要注意字符编码的设定与兼容性问题。开发者应根据项目需求和目标用户群体选择合适的解决方案,以确保功能的...
在使用Ajax进行数据传递时,不同的浏览器对于中文字符的处理方式可能会有差异,尤其是IE和Firefox(FF)这两款广泛使用的浏览器。中文字符编码问题主要发生在字符编码不一致的情况下,比如浏览器界面的编码为UTF-8,...
对于非IE浏览器(如Chrome、Firefox等),可以使用`FileReader` API,它提供了一个异步的方式来读取文件内容。`FileReader`的`readAsBinaryString`方法用于将文件读取为二进制字符串。需要注意的是,`...
// 对于现代浏览器(Firefox, Chrome, Safari, etc.) xhr = new XMLHttpRequest(); } else { // 对于旧版IE (IE5, IE6, IE7, IE8) xhr = new ActiveXObject("Microsoft.XMLHTTP"); } return xhr; } ``` ###...
对于Firefox,这种方式通常有效,但在IE中可能需要额外处理。对于IE,建议直接使用`encodeURI()`来确保UTF-8编码的传输。 - 方式一:服务器端解码,如Java的Servlet代码示例: ```java String old = request....
根据浏览器的不同,创建的方式也有所不同:对于现代浏览器如Firefox、Safari等,可以直接使用`new XMLHttpRequest()`;而对于旧版IE浏览器,则需尝试使用`new ActiveXObject("Msxml2.XMLHTTP")`或`new ActiveXObject...
通过这种方式,无论是在Firefox还是IE浏览器中提交数据,都指定了以UTF-8编码,这保证了数据在服务器端正确解码,避免出现中文乱码问题。同时,也确保了不同浏览器在处理AJAX请求时的一致性。 总结来说,解决JQuery...
14. **浏览器差异**:IE和Firefox在处理回车、缩进等格式化文本时存在差异,需要考虑兼容性。 15. **span的使用**:在div内,若需对一小部分内容进行特殊样式处理,可使用span标签。 16. **jQuery对象与DOM对象**...
例如,IE使用GBK/GB2312编码,而Firefox使用UTF-8编码。解决方法是使用JavaScript的`encodeURIComponent`函数对URL进行编码,并确保Tomcat使用UTF-8解码。 #### 六、扩展:Prototype库的使用 除了原生JavaScript外...