关于在地址栏中直接输入中文,后台获取乱码的问题。
由于公司软件要求使用一个XML文件进行软件更新,需要从公司网站提供一个XML的地址,根据提供的参数从数据库获取数据并形成指定格式的XML。从软件传递过来的参数是以URL参数的形式传递,分别有:{type:[福州2002,福州2005,福州2008,河南2008,北京2008],year:[2012,2011,2010……]}。
由于type参数中包含了中文,http://www.chenxisoft.com/NewQueryTest.asp?type=福建2005,使用此地址进行访问的时候,获取到的值Request.QueryString["type"]结果在FF和IE下竟然是:����2005>>>一团乱码,在CHROME下没有问题。
仔细查看到发现,是由于编码问题形成的,IE不编码直接提交(网站本身用UTF-8编码),FF用GB2312提交,CHROME用UTF-8提交。
在网上百度到一个结果,直接修改WebConfig,,,,添加<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />,,,IE和FF能得出正确的结果,但是CHROME却乱码。
搜索了相当大量的结果。结果都发现只能预先处理给url先编码UrlEncode之后再解码回来才能达到最完美的效果。直接在地址栏输入的话,FF和CHROME的默认编码方法的不同造成总有一个会出现错误(本人无视了CHROME,因为软件更新的时候取的是IE的结果)。
结论:本问题无解,希望有解决之道。