首页 新闻 会员 周边 捐助

ASP.NET Request.Form 乱码

0
悬赏园豆:100 [已关闭问题]

我在提交一个HTML 的表单时,用Request.Form["parameter"] 取参数时出现了乱码,

我试过在 web.config 的文件中添加

  <globalization requestEncoding="GB2312"
    responseEncoding="GB2312"
    fileEncoding="GB2312"
    culture="zh-CN"
    uiCulture="zh-CN"/>

是可以解决Request.Form["parameter"]的乱码问题,但这却和我有些页面冲突,我想要问一下:

如何在 C#的代码中转换Request.Form["parameter"] 的乱码问题,比如一个方法

邢涛的主页 邢涛 | 初学一级 | 园豆:10
提问于:2008-10-21 14:58
< >
分享
其他回答(4)
0

和页面有什么冲突?那你可以设置为全UTF-8啊

丁学 | 园豆:18730 (专家六级) | 2008-10-21 16:23
0

为了国际化和以后的扩展,建立全部都设置为UTF-8,呵呵

Fencer | 园豆:7 (初学一级) | 2008-10-21 20:34
0

Server.HtmlDecode(Request.Form["parameter"] )就可以

或者HttpServerUtility.HtmlDecode 试试

基本就这么多。

如果部分页面用,就不需要在web.config设置globalization 这个。

补充:

那你设置一下CodePage属性吧。

异常处理:

回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。

解决方法:

<pages enableEventValidation="false"/>

RicoRui | 园豆:3663 (老鸟四级) | 2008-10-21 22:41
1

c#默认页面是用utf-8的

可以通过设置 page

一些标记的解码方式来解决兼容问题

至于你说的全部换成utf-8不行是因为你文件中有以其他的编码形式储存的文件

或者你有什么其他的标签影响了编码 例如:meta

所以最好是吧文件重存一遍

 

顺便说下设置编码的方式

编码有2个方面

传输编码和客户端解码

当编码和解码相同的时候就显示正常

当编码和解码不同的时候就会出问题

所以之歌问题八成是开发不规范

将项目里的文件用了不同的编码方式存储,才导致这些问题

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2008-10-22 20:52
0

Geeks | 园豆:560 (小虾三级) | 2008-11-03 17:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册