[求助]奇怪的返回xml编码。。。在线等!!

ppsniffer 2006-12-05 08:40:35
// 这是我ASP程序里得到服务器返回字符串的那段代码,服务器是c++写的程序服务器。

function _GetInfoRequestStateChanged(){
if( X.readyState != 4 ) {
GE('msg').innerHTML="正在发送数据...";
return;
}

if( X.status != 200 ) {
GE('msg').innerHTML=X.statusText;
return;
}


var ResponseGetInfo = X.responseText;
var xmlobj = new ActiveXObject( "Microsoft.XMLDOM" );
xmlobj.loadXML( X.responseText );

var GetInfo = xmlobj.getElementsByTagName("return")(0).text;
if ( GetInfo == 'true' ) {
alert("ok");
} else if ( GetInfo != 'true' ) {
alert("false");
return;
}

var ResponseGetValue = xmlobj.getElementsByTagName("font")(1).text;

GE('msg').innerText = ResponseGetValue;


}

//这是我收到服务器的返回字符串上一串XML文本

<p2p_msg>
<cmd>msg</cmd>
<lw time="1164539440" from="6002100" to="4000000000" codepage="936">
<message>
<object type="text">
<font face="MS Shell Dlg" color="0,0,0" size="9"> </font>
</object>
<object type="text">
<font face="Basemic Times" color="0,0,255" size="22" style="">回复内容文本</font>
</object>
</message>
</lw>
</p2p_msg>




这里我得到服务器返回的字符串是UTF8编码的。显示出来并不像大家说的 12%135%1#%%#!@% 这样的编码,当我alert输出X.responseText文本的时候,如果中间回复内容文本正确的文本应该是"1111111哈哈22222".当输出却变成了"11111112222222"中文就自动被过滤掉了,或者是一个空格。如果回复内容文本只有的中文的话,就会导致正确应该是"回复内容文本</font>" 变成 " /font>"(这里中文也没出现,只会出现一个空格)。。。。我也试过decodeURIComponent/encodeURIComponent。但都不对,那位大牛能帮小弟解决一下,,,不胜感激。。先谢谢了。。。
不知道我说清楚没。。。。那里说含糊了我补充。!
...全文
130 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
marse 2006-12-06
  • 打赏
  • 举报
回复
这个问题一般都是由于乱码引起。
服务器返回的字符串是UTF8编码
那你的ASP程序是不是也是UTF8编码的?如果不是就会出现乱麻。你要把服务器发送过来的
数据转成你程序里的编码
issgates 2006-12-06
  • 打赏
  • 举报
回复
肯定编码不一致
marse 2006-12-06
  • 打赏
  • 举报
回复
要么是post或者get的编码不行?
ppsniffer 2006-12-06
  • 打赏
  • 举报
回复
我程序本身保存方式也是 utf-8的。content="text/html; charset=utf-8" 也加了的,,但就是中文会出现 ???

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧