最近因为项目需要,做了一个投票的页面(Html,比如A 页面),要把它Post到一个Aspx页面(比如B页面),在这个Aspx页面上,需要确认一下,在提交到数据库,可是问题出来了,用户在A页面上点击SubmitPostB页面上的时候,在B页面用Request.Form[ID],接收,但是显示时,有时候是乱码,有的时候却是正常的,不知道为什么,在网上查了一些资料,看了一些编码的文章,感觉出现问题的原因是这样的,A页面虽然在开始有一句<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />,但是用户用的机器上的编码可能是UTF或者GB的,在用户Post的时候,是用用户自己上的编码格式编的码(我的理解),从而在Request的时候就已经成乱码了。一开始,我想两种办法,一种是用Url编码,比如我们在A页面上有一个Input : <input type="radio" >Reflector就行。解码的源代码如下:
Asp.Net 编码和解码 private string NormalU2C(string input)
    }

  写到这里问题基本上解决了,可是如果您的页面上有n多的input ,你还用这个工具一个input,一个input,把其中的Value Copy –Convert-Parse,到你的页面上吗?其实我们可以写一个正则表达式,用正则表达式来找出input中的Value,然后编码之后,在把原先的Value替换成编码后的Value,这样的话,即省了功夫,又不会出错(除非你的正则有问题),如果你不清楚怎么写的话,见一下代码:
Asp.Net 编码和解码protected void Button1_Click(object sender, EventArgs e)
;
         //txtcontent为需要替换的
         //txtresult为结果
Asp.Net 编码和解码        Regex rgx 
= new Regex(strPatter, RegexOptions.Multiline);
Asp.Net 编码和解码        
this.txtresult.Text = rgx.Replace(txtcontent.Text, new MatchEvaluator(Encode));
Asp.Net 编码和解码    }

Asp.Net 编码和解码    
//调用委托
Asp.Net 编码和解码
    private string Encode(Match m)
    }



     编码工具下载

相关文章: