xml与asp乱码问题,急急急急!!!!!!

以下文件(Question.xml与2.xsl)都能正常显示,显示的数据也都是中文的,但是在文本框中填写了中文后,提交到后台的数据显示就不是简

体中文了(例如,提交的数据是“非常好啊”,显示的数据就变成了“闈炲父濂藉晩”),在提交后的显示页面(即下面的Result.asp)上面,

如果把IE工具栏里的“查看”--〉“编码”中的编码选择为Unicode码,就能正常显示简体中文了,这到底是为什么啊?有没有相关的转化函数

啊?
以下这个文件是Question.xml,里面的数据是xml格式的数据

 1<questionnaire>
 2<questionnaireid>3</questionnaireid>
 3<title>服务满意度调查表</title>
 4<questions>
 5<question>
 6<questioneid>88</questioneid>
 7<caption>您有什么建议</caption>
 8<answer>
 9<name>question</name>
10</answer>
11</question>
12</questions>
13</questionnaire>

以下的这个文件是2.xsl,也就是上面那个文件的格式显示文件

 1<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 2<xsl:template match="/">
 3<html>
 4<head>
 5<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
 6<title>客户服务中心调查表</title>
 7</head>
 8<body bgcolor="#FFFFFF" leftmargin="0" marginheight="0" marginwidth="0" onmousemove="reportMove()" topmargin="0">
 9<form accept-charset="gb2312" action="Result.asp" method="post" name="form1" onsubmit="submit1()">
10<table border="1" cellpadding="0" cellspacing="0" width="770">
11<xsl:for-each select="questionnaire/questions/question">
12<tr>
13<td height="2">
14</td>
15<td align="left" colspan="2" height="2">
16<xsl:for-each select="answer">
17<xsl:element name="input">
18<xsl:attribute name="type">text</xsl:attribute>
19<xsl:attribute name="name"><xsl:value-of select="name"></xsl:value-of></xsl:attribute>
20<xsl:attribute name="value"><xsl:value-of select="name"></xsl:value-of></xsl:attribute>
21</xsl:element>
22</xsl:for-each>
23</td>
24</tr>
25</xsl:for-each>
26</table>
27<xsl:element name="input">
28<xsl:attribute name="type">submit</xsl:attribute>
29<xsl:attribute name="name">submit</xsl:attribute>
30<xsl:attribute name="value">保存结果</xsl:attribute>
31</xsl:element>
32</form>
33</body>
34</html>
35</xsl:template>
36</xsl:stylesheet>

以上两个文件都能正常显示,显示的数据也都是中文的,但是在文本框中填写了中文后,提交到后台的数据显示就不是简体中文了(例如,提交

的数据是“非常好啊”,显示的数据就变成了“闈炲父濂藉晩”),在提交后的显示页面(即下面的Result.asp)上面,如果把IE工具栏里的“

查看”--〉“编码”中的编码选择为Unicode码,就能正常显示简体中文了,这到底是为什么啊?有没有相关的转化函数啊?

Result.asp

1   
2Texts=request.form("Question")   
3  
 1<html>
 2<head>
 3<title>无标题文档</title>
 4<meta content="text/html; encoding=gb2312" http-equiv="Content-Type"/>
 5</head>
 6<body bgcolor="#ffffff" text="#000000">
 7<table border="1" width="100%">
 8<tr>
 9<td width="15%">```
10=Texts
11```</td>
12</tr>
13</table>
14</body>
15</html>

---------------------------------------------------------------

如何解决XMLHTTP提交过时返回的是乱码?
http://www.csdn.net/Develop/read_article.asp?id=14993

下面是解决办法:
1,测试从服务器返回含有中文的 XML 字符串,使用 GET 方法来进行测试。
2,把含有中文字符串的 XML 提交到服务器,并在服务器进行处理后再以中文的形式返回到客户端,其中没有使用字符串解码的处理,大大提高了效率!

本例子需要两个文件:xmlencode.htm和xmlencode.asp

xmlencode.htm

 1<script>   
 2var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");   
 3xmlhttp.open("GET","http://mengxianhui/asp/xmlencode.asp",false)   
 4xmlhttp.setRequestHeader("Content-Type","text/xml")   
 5xmlhttp.send()   
 6alert(xmlhttp.responseXML.xml);   
 7var s = '<?xml version="1.0"?><a> 如何解决XMLHTTP提交过时返回的是乱码,这是先提交上去,再返回的文字。 </a>'   
 8xmlhttp.open("POST","http://mengxianhui/asp/xmlencode.asp",false)   
 9xmlhttp.setRequestHeader("Content-Type","text/xml")   
10xmlhttp.send(s)   
11alert(xmlhttp.responseXML.xml);   
12</script>

xmlencode.asp

1@ Language=VBScript 
 1   
 2Response.ContentType = "text/xml"   
 3Response.CharSet = "GB2312"   
 4  
 5Dim varCount,varReq,xmldom   
 6varCount = Request.TotalBytes   
 7varReq = Request.BinaryRead(varCount)   
 8  
 9If Request.ServerVariables("REQUEST_METHOD") = "POST" Then   
10Set xmldom = Server.CreateObject("MSXML2.DOMDocument")   
11xmldom.load varReq   
12Response.Write "
13<?xml version=""1.0"" encoding=""GB2312""?>
14" & xmldom.documentElement.xml   
15Else   
16Response.Write "
17<?xml version=""1.0"" encoding=""GB2312""?>

<a>如何解决XMLHTTP提交过时返回的是乱码,这是从服务器直接返回的文字。</a>

1"   
2End If   

以上在中文WIN2K+IE6和英文WINXP+IE6和IE5下测试通过!

---------------------------------------------------------------

 1<form accept-charset="gb2312" action="/Expert/Subject/AddSubjectTopic.asp" method="POST" name="SubjectTopic">   
 2\---------------------------------------------------------------   
 3  
 4研究一下这个文件   
 5http://expert.csdn.net/Expert/Xsl/2.xsl   
 6\---------------------------------------------------------------   
 7  
 8还是劝你放弃用xsl里的表单提交数据的念头,这东东很可恶,开始我用escape和unescape来加密解密是可行的,但数据为一个汉字的时候,会丢失数据。   
 9so   
10用嵌入框架来提交表单是暂行的办法,找到解决的方法再说吧,技术上没有解决不了的问题,看你使用何种途径了。</form>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus