ASP.net接收Request.Form传递的值乱码问题

来源:互联网 发布:编程的人怎么打括号 编辑:程序博客网 时间:2024/04/29 12:23

曾经涉及到用url传递汉字总少一个字,后来得知是utf-8编码的问题,最好通过server.urlencode后再传递。

这次遇到aspx页面接收html页面里的一个input值,通过request.form["test"]得到的是乱码。考虑可能同样是编码问题,首先想把传递过来的值由utf-8转换为gb2312,于是写了个转换函数:

不知是函数不对,还是没有对症,转换后的值仍为乱码(就是一堆问号)。

       //content是要转编码的内容,sourceCode是原来的编码名称,targetCode是要转换成的编码名称

       public static string StrConvCode(string content,string sourcCode,string targetCode)
        {
            Encoding source =Encoding.GetEncoding(sourcCode);
            Encoding target = Encoding.GetEncoding(targetCode);
            byte[] bSource= source.GetBytes(content);
            byte[] bTarget = Encoding.Convert(source, target, bSource);
            return target.GetString(bTarget);
        }

再一次查询,后来偶尔发现在vs2003里web.config里有<globalization responseEncoding="gb2312" requestEncoding="gb2312"/>,考过来,ok好用了。在网上看到有的在globalization 里写的更多,但我用的时候会产生页面乱码,但传过来的值是正确的情况。