|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!背景
触及到两个网站的通讯,网站A有一页面a,用提交表单的体例,传值到网站B的页面b。网站A一致用UTF-8编码,网站B一致用GB2312编码。
web.config中编码的设置
网站A:<globalizationrequestEncoding="UTF-8"responseEncoding="UTF-8"/>
网站B:<globalizationrequestEncoding="gb2312"responseEncoding="gb2312"/>
办理
网上搜刮的了局,不过都是修正web.config文件的requestEncoding、responseEncoding之类的,这对我来讲,纯属馊主张。加上收集猖狂地复制、粘贴、未考证可行性等举动,一向令我发指,间接招致搜刮了局一模一样,找到的都是那几篇文章,最愤恚的是个中的内容仍是毛病的。以是自己一向保持,碰到的成绩,的确考证了可行,才在博客贴出,以避免误人误己。(但愿没扯得太远)
那就本人动动脑吧,略微梳理下,实在这个历程很复杂,就是一个UTF-8的页面发送数据到GB2312的页面,因为编码分歧,呈现乱码很一般,办理办法天然是一致编码。
网页的编码,一是吸收哀求数据(requestEncoding)的编码,一是发送呼应(responseEncoding)的编码。只需让a页面发送呼应的编码,b页面吸收哀求的编码分歧,便可办理乱码成绩。
代码只要一句,在a页面Page_Load办法中到场Response.ContentEncoding=Encoding.GetEncoding("gb2312");便可。
复制代码代码以下:
//设置a页面呼应编码为gb2312,包管与b页面吸收哀求的编码分歧
protectedvoidPage_Load(objectsender,EventArgse)
{
Response.ContentEncoding=Encoding.GetEncoding("gb2312");
}
大概你会成心见,说,反过去设置b页面吸收哀求的编码与a页面发送呼应的分歧,行不可呢。我试过了,不可,代码见下,假如你晓得个中道理,烦请告诉,不堪感谢!
复制代码代码以下:
//设置b页面吸收哀求的编码为utf-8,包管与a页面呼应编码分歧,但行欠亨,为什么??
protectedvoidPage_Load(objectsender,EventArgse)
{
Request.ContentEncoding=Encoding.GetEncoding("utf-8");
}
也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。 |
|