[求助]奇怪的返回xml编码。。。在线等!!
// 这是我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。但都不对,那位大牛能帮小弟解决一下,,,不胜感激。。先谢谢了。。。
不知道我说清楚没。。。。那里说含糊了我补充。!