ASP.NET网站制作之ASP.NET中Request.Form中文乱码的办理方...
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.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#的脚步。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
页:
[1]