| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2385 人关注过本帖
标题:win32 的winForm程序模拟POST提交到JSP网站,中文乱码
只看楼主 加入收藏
南月
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-12
收藏
 问题点数:0 回复次数:3 
win32 的winForm程序模拟POST提交到JSP网站,中文乱码
我手上有个任务:把单位的全体成员在某个网站(JSP的)上做好注册,而我呢想做个win32 的winForm程序呢把我手上的几百号人的信息一一post提交注册,现在我已经实现把信息注册进去了,但碰上中文时,注册进去的信息就是乱码。以下是我的处理函数。大家帮我看看
程序代码:
private string WebDo(string url, string postData)
        {
            try
            {
                byte[] byteArray = Encoding.Default.GetBytes(postData);
                //Encoding ISO88591Encoding = Encoding.GetEncoding("ISO-8859-1");
                //byte[] byteArray = ISO88591Encoding.GetBytes(postData);// Encoding.UTF8.GetBytes(postData);
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url));
                webRequest.Method = "post";
                webRequest.ContentType = "application/x-www-form-urlencoded";
                webRequest.ContentLength = byteArray.Length;
                Stream newStream = webRequest.GetRequestStream();
                newStream.Write(byteArray, 0, byteArray.Length);
                newStream.Close();
                //接收
                HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
                //StreamReader php = new StreamReader(response.GetResponseStream(), Encoding.Default);
                //上面这句在上正常,用在JSP网站上返回的中文也是乱码,改用下面的编码后正常
                StreamReader php = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));

                string Message = php.ReadToEnd();

                return Message;
            }
            catch (Exception ex)
            {

                return "错误!";
            }

        }
原站点注册页面的编码可能是UF-8,以下是注册页面源代码里找到的
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
考虑到可能是提交的网页编码类型不正确。所以试着在post之前进行编码(当然这个我不太懂),我是想网页编码如果为UTF-8,,那就用 Encoding.UTF8.GetBytes(postData);
但也不行。

搜索更多相关主题的帖子: 注册 信息 中文 
2011-10-14 11:29
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
post之前转码肯定是正确的,但是编码不一定是utf8,因为站点服务端代码中多半会将数据转成utf8,所以返回回来是utf8,但是提交的时候就不一定是了,你可以尝试一下转成其它编码再post,比如UnicodeEncoding.GetEncoding("GB2312").GetBytes(postData);UnicodeEncoding.GetEncoding(936).GetBytes(postData)等
2011-10-14 12:56
poolmans
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2011-3-29
收藏
得分:0 
学习
2011-10-14 13:34
南月
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-12
收藏
得分:0 
谢谢,这些我都试过,这个问题先放着吧,以后可能自然而然又解决了。
2011-10-14 19:48
快速回复:win32 的winForm程序模拟POST提交到JSP网站,中文乱码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023535 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved