Asp.net 编码方式

来源:百度知道 编辑:UC知道 时间:2024/06/04 14:39:02
我用一个html页的form来收集信息,用aspx页来输出采集的信息,结果对于采集的汉字出现乱码问题,网上说用
Encoding gb2312 = Encoding.GetEncoding("gb2312");
Response.ContentEncoding = gb2312;
可以解决,不知道怎么用,代码放哪个页面——小弟刚学,希望详细说明。
按照各位的方法都试了下,惭愧,还是不能实现,可能方法不对,具体代码如下,欢迎各位修改

html页:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>

<form action="show.aspx" method="post" name="myform">
<table width="200" border="0">
<tr>
<td>Name:</td>
<td><input name="in_name" type="text" style="WIDTH: 180px"></td>
<td> </td>
</tr>
<tr>
<td>Number:</td>
<td><input name="

在需要获得值时候,
使用
Request.ContentEncoding =System.Text.Encoding.UTF8
string sName = request["值"];

你忽视了一个问题,你采集的页面也是有编码的,你的采集程序的编码必须和他一样,至于展示编码,如果为了简单,也做得和他一样,如果需要从不同的地方采集,采集后再转一下

楼主请看!!
刚才我将你的页面拷贝到我的站点中测试通过了。用我说的第一种方法就解决了这个问题,肯定好使!!
PS:你的页面不需要修改

这个问题是由于在页面之间传输中文时Webconfig中默认编码格式与汉字编码冲突造成的,有2个常见解决方案(有例子,推荐第二种):

1、Webconfig中默认建立的编码格式为utf-8,所以在传输中文的时候变成了乱码,接收自然也是乱码信息,所以在你的web.config中在<system.web>与</system.web>间加入
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
就可以了。 但可能影响其他页面传值,因此请尽量使用下面的方法。

2、首先在传递之前先编码,在html页面中有如下代码:
<script language="JavaScript">
function Change(str){
document.location.href = "b.aspx?Text1="+escape(str);
}
</script>
<body>
<input id="Text1" type="text" />
<input id=&q