仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 673|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之ASP.NET中Request.Form中文乱码的办理方...

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:19:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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#的脚步。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-19 08:40:17 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
小魔女 该用户已被删除
板凳
发表于 2015-1-25 11:46:13 来自手机 | 只看该作者
市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。
只想知道 该用户已被删除
地板
发表于 2015-2-2 22:01:13 | 只看该作者
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
简单生活 该用户已被删除
5#
发表于 2015-2-8 09:00:13 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-25 08:17:57 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
7#
发表于 2015-3-7 18:31:13 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
海妖 该用户已被删除
8#
发表于 2015-3-15 11:28:52 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
兰色精灵 该用户已被删除
9#
发表于 2015-3-22 00:36:44 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表