[小经验]ASP.NET页面的编码问题

    在用ASP.NET写网上支付的接口程序时,遇到一个奇怪问题,通过表单提交过去的中文全是乱码,英文正常。而用asp程序进行测试,可以正常提交中文,asp页面中有这样的HTML代码:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    可是将这个代码加入到ASP.NET页面中,依然解决不了问题。分析了一下,问题应该是编码引起的,对方的程序只能处理GB2312编码的页面提交过来的中文数据。难道加了上面的代码,ASP.NET却不是以GB2312编码显示的?打开该页面,查看一下浏览器的编码,原来是UTF-8,原因找到,怎么解决呢?看来,ASP.NET不理睬上面的代码,自己向浏览器发送编码信息,那我设置一下Response.ContentEncoding试试,在Page_Load中加上如下代码:

Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

    OK!问题解决!
posted @ 2005-04-12 21:52 dudu 阅读(7650) 评论(21)  编辑 收藏 所属分类: ASP.NET 1.1

  回复  引用  查看    
#1楼 2005-04-12 22:07 | 木野狐      
csdn 首页的也是 UTF-8, 我前两天做测试的时候用程序抓过,中文全是乱码。不知道我在这种情况下该如何解决。(客户端去抓的时候)。
  回复  引用  查看    
#2楼 [楼主]2005-04-12 22:13 | dudu      
那可能是你的程序没有正确处理UTF-8编码。
  回复  引用  查看    
#3楼 2005-04-12 22:53 | 湘南和也      
dudu你的网站的web.config里面有没有设置啊?缺省是UTF-8的,把它改成GB2312就不用每个页面设置了
  回复  引用  查看    
#4楼 [楼主]2005-04-12 23:06 | dudu      
主要是对方网站的程序不能处理UTF-8, 本来用UTF-8编码也是正常的, 没必要改成GB2312。
  回复  引用  查看    
#5楼 2005-04-12 23:34 | birdshome      
对,utf-8没问题一定不要改,否则更是添乱
  回复  引用  查看    
#6楼 2005-04-13 10:55 | Ja      
一般IE浏览器的高级属性里面都是设置成“总是以UTF-8发送URL(需要重启动)”的。
  回复  引用  查看    
#7楼 2005-04-13 13:32 | didasoft      
呵呵,我也碰到过类似的问题。在页面设置没用,一定要用Response设置。
  回复  引用  查看    
#8楼 2005-04-13 13:47 | lion      
这个小程序,可以识别你要随机抓取网页时获取到内容的编码

http://www.cnblogs.com/lion.net/archive/2005/02/24/108395.html


  回复  引用  查看    
#9楼 2005-04-23 22:43 | 浅蓝      
页面设置是没用,程序根本就不理睬,我还碰到过不同编码页用include包含的情况,就是乱码!
  回复  引用    
#10楼 2005-04-27 20:20 | Brian Sun [未注册用户]
SOS!紧急求救!
现寻觅.NET Framework的帮助文档精简版,最好是只有NDoc的,最好是CHM格式的,请寄给:briansun.vip@gmail.com

谢谢!!
  回复  引用    
#11楼 2005-04-29 00:11 | 李露阳 [未注册用户]
我看你还是在web.config中把国际化配置变成这样就ok了
我今天也是遇到这样的事情。记得
<system.web>
<globalization
fileEncoding="gb2312"
requestEncoding="GB2312"
responseEncoding="GB2312"

uiCulture="de-DE"
/>
</system.web>
</configuration>

如果还不懂的话,可以给我email :liluyang726@163.com
  回复  引用  查看    
#12楼 2005-06-22 20:55 | 秋日私语      
谢谢伙计们,我做了个报表打印的东西,下载到本机上全是乱码,要用记事本打开保存一下,才能正常显示,一直很郁闷。原来问题就在这里啊~~~非常感谢!
  回复  引用  查看    
#13楼 2005-10-25 19:31 | Micstar.fang      
今天也遇到了这样的问题,我的页面编码是 utf-8,但是对方只接收gb2312的。
在web.config中改成<?xml version="1.0" encoding="gb2312" ?> 但是不管用,在html中加了<meta http-equiv="Content-Type" content="text/html charset=gb2312" /> 也没反应,用你这种方法就OK了!
  回复  引用  查看    
#14楼 2005-10-25 21:18 | Micstar.fang      
刚才无意中发现的,只要改一下web.config一条语句
原来的
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

改过之后
<globalization requestEncoding="GB2312" responseEncoding="GB2312" />

这样一切也就OK了
  回复  引用    
#15楼 2005-11-29 10:49 | olive_cai [未注册用户]
我也遇到过类似的问题,直接写的中文无法正常显示,从数据库读出来的可以正常显示。后来在config改为:
<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8" />
fileEncoding 的值决定 ASP.NET 编码 .aspx 文件的方式,requestEncoding 和 responseEncoding 的值决定请求数据和响应数据的编码方式。
保存源文件也是UTF-8。一切正常各种编码都支持!
所以我建议使用utf-8!

  回复  引用    
#16楼 2005-12-01 11:36 | 不是吧 [未注册用户]
这个问题也要讨论这么久!
不是吧.
还有啊,有个同志竟然在XML格式的WEB配置文件中设置<?xml version="1.0" encoding="gb2312" ?> ,晕啊!!!
你还没入门呢!
  回复  引用    
#17楼 2005-12-01 17:54 | micstar [未注册用户]
我認為不管問題的難易,只要有興趣就值得討論!
再說了,誰知道什麼問題值得討論,什麼問題該支到一邊呢
來這裡不就是為了學習和交流的嗎

  回复  引用    
#18楼 2006-08-20 00:13 | waveyus [未注册用户]
在Web.config 里面这样设置:

<globalization

requestEncoding="utf-8"
responseEncoding="utf-8"
fileEncoding="GB2312"

/>

这样的话,页面是UTF-8解码,又支持中文

  回复  引用  查看    
#19楼 2007-04-02 09:58 | zhh007's Bolg      
不错的方法
  回复  引用    
#20楼 2008-07-31 11:49 | zjs [未注册用户]
终于搞定了,谢谢大家! 心情舒畅哦!
  回复  引用    
#21楼 2008-09-23 00:51 | maggie_yan [未注册用户]
我尝试采用了楼主的做法,可是结果不是很明显:抓取的内容是正常了,可是标题本来应该是“无标题页”的,现在却成了乱码。
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri( urlStr));
req.Method = "GET";
HttpWebResponse rep = (HttpWebResponse)req.GetResponse();

Stream s = rep.GetResponseStream();
StreamReader sreader = new StreamReader(s,Encoding.GetEncoding("gb2312"));// Encoding.UTF8
url= sreader.ReadToEnd();
rep.Close();
sreader.Close();
只有当改成被注释的内容才真正的正常了
我想知道这是怎么一回事

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: