post传参中文乱码

时间:2022-05-05 16:38:46
flash  post传参到aspx  页面接受到的值中文为乱码 - - 不知道什么原因

1、页面加了 <meta http-equiv="content-type" content="text/html;charset=gb2312"/>

2、Server.UrlDecode(msg)  HttpUtility.HtmlEncode(msg) 转换之后还是乱码

真诚求帮助

14 个解决方案

#1


乱码的文本贴出来看看

#2



        HttpUtility.UrlEncode("...", Encoding.GetEncoding("gb2312"));
        HttpUtility.UrlDecode("...", Encoding.GetEncoding("gb2312"));

#3


web.config里面的改了的没有  还有这个flash的值 是不是cookie?

#4


引用楼主 hengyisoft 的回复:
2、Server.UrlDecode(msg) HttpUtility.HtmlEncode(msg) 转换之后还是乱码


一个是UrlDecode,一个是HtmlEncode,这可以配对吗?

#5


为什么还用HtmlEncode编码一次?

如果POST的时候没有指定Content-Type: application/x-www-form-urlencoded,或者没有进行URL编码,
那么UrlDecode是不起作用的。
POST时加上,NET会自动转换成string(UNICODE)
Content-Type: application/x-www-form-urlencoded; charset="gb2312"

#6


  <system.web>
 <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
 </system.web>
web.config文件里面添加这句试一下

#7


Server.UrlDecode(msg) 
Server.UrlEncode(msg)

web.config 

加入
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

#8


该回复于2011-08-15 10:36:43被版主删除

#9


7楼正解

#10


引用 4 楼 sp1234 的回复:
引用楼主 hengyisoft 的回复:
2、Server.UrlDecode(msg) HttpUtility.HtmlEncode(msg) 转换之后还是乱码


一个是UrlDecode,一个是HtmlEncode,这可以配对吗?

- -我只是说用上面2中方式处理 post过来的数据还是乱码  好像5楼大哥说的那样  config加了那句不过是gb2312 因为页面是gb2312。
事实上是点击flash上按钮 aspx页面接收post数据 - - 这个一点不懂而且配置文件和页面编码一致以前好像没碰到过乱码问题,等下再去试下--

#11


问题解决了!
- -页面和config 都改成utf-8  正常了  关于gb2312 utf-8编码的区别 一直浑浑噩噩 以前都是想用哪个就哪个
小弟想问下  gb2312 utf-8在建站时如何选择 他们的主要区别是什么-- 
这个回答了就结贴 谢谢各位大哥。

#12


GB2312码是*国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。
UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如日文,韩文)
去看看这篇文章吧写得很详细 http://www.cnblogs.com/xiaomia/archive/2010/11/28/1890072.html

#13


引用 11 楼 hengyisoft 的回复:
问题解决了!
- -页面和config 都改成utf-8  正常了  关于gb2312 utf-8编码的区别 一直浑浑噩噩 以前都是想用哪个就哪个
小弟想问下 gb2312 utf-8在建站时如何选择 他们的主要区别是什么-- 
这个回答了就结贴 谢谢各位大哥。



gb2312 和 utf-8 都是网页编码的方式。
GB2312 是汉语的标准编码方式;而 UTF-8 则是一种全球文字编码方式,具有更广泛的通用性,全球通用,因此是推荐的做法。

以前的技术(如 ASP、PHP)习惯使用 GB2312 来对网页进行编码,当时的 Dreamweaver 等工具的默认编码也是 GB2312;
但近几年由于国际化的发展和跨平台的需求,渐渐地 UTF-8 受到推荐;目前 Zend 和 Visual Studio 等主流 IDE 中已将 UTF-8 作为默认编码了, ASP.NET 的默认编码也是 UTF-8


在你的问题上,由于 Flash 是西方的技术,它对中国标准编码 GB2312 的支持不好是可以理解的。


#14


结贴 谢谢各位大哥帮助 呵呵。

#1


乱码的文本贴出来看看

#2



        HttpUtility.UrlEncode("...", Encoding.GetEncoding("gb2312"));
        HttpUtility.UrlDecode("...", Encoding.GetEncoding("gb2312"));

#3


web.config里面的改了的没有  还有这个flash的值 是不是cookie?

#4


引用楼主 hengyisoft 的回复:
2、Server.UrlDecode(msg) HttpUtility.HtmlEncode(msg) 转换之后还是乱码


一个是UrlDecode,一个是HtmlEncode,这可以配对吗?

#5


为什么还用HtmlEncode编码一次?

如果POST的时候没有指定Content-Type: application/x-www-form-urlencoded,或者没有进行URL编码,
那么UrlDecode是不起作用的。
POST时加上,NET会自动转换成string(UNICODE)
Content-Type: application/x-www-form-urlencoded; charset="gb2312"

#6


  <system.web>
 <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
 </system.web>
web.config文件里面添加这句试一下

#7


Server.UrlDecode(msg) 
Server.UrlEncode(msg)

web.config 

加入
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

#8


该回复于2011-08-15 10:36:43被版主删除

#9


7楼正解

#10


引用 4 楼 sp1234 的回复:
引用楼主 hengyisoft 的回复:
2、Server.UrlDecode(msg) HttpUtility.HtmlEncode(msg) 转换之后还是乱码


一个是UrlDecode,一个是HtmlEncode,这可以配对吗?

- -我只是说用上面2中方式处理 post过来的数据还是乱码  好像5楼大哥说的那样  config加了那句不过是gb2312 因为页面是gb2312。
事实上是点击flash上按钮 aspx页面接收post数据 - - 这个一点不懂而且配置文件和页面编码一致以前好像没碰到过乱码问题,等下再去试下--

#11


问题解决了!
- -页面和config 都改成utf-8  正常了  关于gb2312 utf-8编码的区别 一直浑浑噩噩 以前都是想用哪个就哪个
小弟想问下  gb2312 utf-8在建站时如何选择 他们的主要区别是什么-- 
这个回答了就结贴 谢谢各位大哥。

#12


GB2312码是*国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。
UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如日文,韩文)
去看看这篇文章吧写得很详细 http://www.cnblogs.com/xiaomia/archive/2010/11/28/1890072.html

#13


引用 11 楼 hengyisoft 的回复:
问题解决了!
- -页面和config 都改成utf-8  正常了  关于gb2312 utf-8编码的区别 一直浑浑噩噩 以前都是想用哪个就哪个
小弟想问下 gb2312 utf-8在建站时如何选择 他们的主要区别是什么-- 
这个回答了就结贴 谢谢各位大哥。



gb2312 和 utf-8 都是网页编码的方式。
GB2312 是汉语的标准编码方式;而 UTF-8 则是一种全球文字编码方式,具有更广泛的通用性,全球通用,因此是推荐的做法。

以前的技术(如 ASP、PHP)习惯使用 GB2312 来对网页进行编码,当时的 Dreamweaver 等工具的默认编码也是 GB2312;
但近几年由于国际化的发展和跨平台的需求,渐渐地 UTF-8 受到推荐;目前 Zend 和 Visual Studio 等主流 IDE 中已将 UTF-8 作为默认编码了, ASP.NET 的默认编码也是 UTF-8


在你的问题上,由于 Flash 是西方的技术,它对中国标准编码 GB2312 的支持不好是可以理解的。


#14


结贴 谢谢各位大哥帮助 呵呵。