以下文件(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>