request.form()获取表单中文乱码

mz48602 2011-12-08 09:41:36
HTML Code
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#e1e8ef" class="classtable">
<form action="Admin_Form_Skin.asp?action=save" method="post" name="form2" id="form2">
<tr class="classrow">
<td width="85" align="right">姓名:</td>
<td>
<textarea name="sdf" cols="100" rows="6" id="sdf"></textarea>

</td>
</tr>
<tr class="classrow">
<td width="85" align="right">介绍:</td>
<td>
<input name="www" type="text" id="www" size="">

</td>
</tr>
<tr class="classrow">
<td align="right"></td>
<td><input type="submit" name="button" id="button" value="保 存" class="button"/></td>
</tr></form>
</table>



<%
Values=Request.Form()
response.Write(Values)

%>



输出结果

sdf=%C8%F6%B5%A9%B7%A8%C8%F8%B7%D2%B7%BD%CA%BD&www=324&button=%B1%A3+%B4%E6
...全文
522 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mz48602 2011-12-10
  • 打赏
  • 举报
回复
问题解决了
分享下解决方法
直接用request.Form()获取的是所有数据所以会有乱码(具体原因不祥)

For each obj in Request.Form
Response.write obj & " " & Request.Form(obj) & " <br>"
Next

这种方法为循环单个获取就不会出现中文为乱码的问题了。



以下是新修改的代码,希望能给大家带来帮助!
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>

<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#e1e8ef" class="classtable">
<form action="test.asp?action=save" method="post" name="form2" id="form2">
<tr class="classrow">
<td width="85" align="right">姓名:</td>
<td>
<textarea name="sdf" cols="100" rows="6" id="sdf"></textarea>

</td>
</tr>
<tr class="classrow">
<td width="85" align="right">介绍:</td>
<td>
<input name="www" type="text" id="www" size="">

</td>
</tr>
<tr class="classrow">
<td align="right"></td>
<td><input type="submit" name="button" id="button" value="保 存" class="button"/></td>
</tr></form>
</table>

<%
If Request.QueryString("action")="save" then

For each obj in Request.Form
Response.write obj & " " & Request.Form(obj) & " <br>"
Next

end if

%>

</body>
</html>
mz48602 2011-12-09
  • 打赏
  • 举报
回复
下面是新改的代码
我继续加分额
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>

<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#e1e8ef" class="classtable">
<form action="test.asp?action=save" method="post" name="form2" id="form2">
<tr class="classrow">
<td width="85" align="right">姓名:</td>
<td>
<textarea name="sdf" cols="100" rows="6" id="sdf"></textarea>

</td>
</tr>
<tr class="classrow">
<td width="85" align="right">介绍:</td>
<td>
<input name="www" type="text" id="www" size="">

</td>
</tr>
<tr class="classrow">
<td align="right"></td>
<td><input type="submit" name="button" id="button" value="保 存" class="button"/></td>
</tr></form>
</table>

<%
If Request.QueryString("action")="save" then

Values=Request.Form()
sdf=Request.Form("sdf")
response.Write(sdf)
response.Write("<br>")
response.Write(Values)
response.End()

end if

%>

</body>
</html>
mz48602 2011-12-09
  • 打赏
  • 举报
回复
当个可以获取到中文额
可是这个表单是自定义的
必须用Request.Form()的方法将表单中的所有值获取后区分额
用Request.Form()获取到的值还是乱码额
a164009464 2011-12-09
  • 打赏
  • 举报
回复
应该是编码问题。为什么要用gb2312,一般都是UTF-8,很多JS传值,导出什么的默认编码都是UTF-8
在配置文件里把全局编码设置成UTF-8试试
Dogfish 2011-12-08
  • 打赏
  • 举报
回复
单个输出看看是否有中文。
mz48602 2011-12-08
  • 打赏
  • 举报
回复
请将以下代码保存为test.asp后填写表单测试下输出结果额
填写中文后获取到的表单值就变成类似这种“%C8%F6%B5%A9%B7%A8%C8%F8%B7%D2%B7%BD%CA%BD”编码了!
我需要的是表单的值填写的是中文输出后还是中文。
谢谢各位指教!

 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#e1e8ef" class="classtable">
<form action="test.asp?action=save" method="post" name="form2" id="form2">
<tr class="classrow">
<td width="85" align="right">姓名:</td>
<td>
<textarea name="sdf" cols="100" rows="6" id="sdf"></textarea>

</td>
</tr>
<tr class="classrow">
<td width="85" align="right">介绍:</td>
<td>
<input name="www" type="text" id="www" size="">

</td>
</tr>
<tr class="classrow">
<td align="right"></td>
<td><input type="submit" name="button" id="button" value="保 存" class="button"/></td>
</tr></form>
</table>

<%
If Request.QueryString("action")="save" then

Values=Request.Form()
response.Write(Values)
response.End()

end if

%>

sdf=%C8%F6%B5%A9%B7%A8%C8%F8%B7%D2%B7%BD%CA%BD&www=324&button=%B1%A3+%B4%E6
mz48602 2011-12-08
  • 打赏
  • 举报
回复
%C8%F6%B5%A9%B7%A8%C8%F8%B7%D2%B7%BD%CA%BD

和324这个都是我表单中填写的中文额数据提交后变成这个了
怎么能用Request.Form()的方法将获取到的中文原模原样的输出!
chinaskysun 2011-12-08
  • 打赏
  • 举报
回复
这不是乱码,是url编码

ChinaXtHuLang 2011-12-08
  • 打赏
  • 举报
回复
奇怪了。不是get为什么呢。
爵罗先生 2011-12-08
  • 打赏
  • 举报
回复
这不是乱码吧 Url编码啊
mz48602 2011-12-08
  • 打赏
  • 举报
回复
Request.Form()
不使用参数将获取表单中所有的值
分开提取出来为
sdf=“%C8%F6%B5%A9%B7%A8%C8%F8%B7%D2%B7%BD%CA%BD“

www=”324&button=%B1%A3+%B4%E6“

无聊是获取单行文本框还是多行文本框中的值中文都为乱码了额!

ChinaXtHuLang 2011-12-08
  • 打赏
  • 举报
回复
你没有带参数。
<%
Values=Request.Form("sdf")
response.Write(Values)
%>

试试
mz48602 2011-12-08
  • 打赏
  • 举报
回复
获取到表单中的中文为乱码了
如何解决
网站编码为gb2312
谢谢高手指教

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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