我在提交一个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"] 的乱码问题,比如一个方法
和页面有什么冲突?那你可以设置为全UTF-8啊
为了国际化和以后的扩展,建立全部都设置为UTF-8,呵呵
Server.HtmlDecode(Request.Form["parameter"] )就可以
或者HttpServerUtility.HtmlDecode 试试
基本就这么多。
如果部分页面用,就不需要在web.config设置globalization 这个。
补充:
那你设置一下CodePage属性吧。
异常处理:
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。
解决方法:
<pages enableEventValidation="false"/>
c#默认页面是用utf-8的
可以通过设置 page
一些标记的解码方式来解决兼容问题
至于你说的全部换成utf-8不行是因为你文件中有以其他的编码形式储存的文件
或者你有什么其他的标签影响了编码 例如:meta
所以最好是吧文件重存一遍
顺便说下设置编码的方式
编码有2个方面
传输编码和客户端解码
当编码和解码相同的时候就显示正常
当编码和解码不同的时候就会出问题
所以之歌问题八成是开发不规范
将项目里的文件用了不同的编码方式存储,才导致这些问题
哦