aspx页面中乱码问题

来源:互联网 发布:网页打开电脑js文件 编辑:程序博客网 时间:2024/05/11 21:08
我写了两个aspx页面,放到一英文操作系统的服务器上,从外面访问时,发现里面的中文全部是乱码。同样在该服务器上的asp页面访问却正常。此外,在我的aspx页面里,嵌了几个asp页面,asp页面里的中文也连带成了乱码了,同样在其他asp中嵌入的asp页面显示正常。(从这点看,是aspx页面的问题)aspx文件保存格式试了utf-8和unicode都不行。请大侠们帮帮忙!!!
aoyo 遨游~ 认真生活,努力微笑^_^ 五级(中级) 信誉: 98 2005-11-26 15:00:05 得分: 20  
                  
webconfig中加<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-26 15:03:21 得分: 0  
                  
在Web.config文件中:<globalization requestEncoding="utf-8" responseEncoding="utf-8" />页面上也加了<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,结果还是不行。
Top aoyo 遨游~ 认真生活,努力微笑^_^ 五级(中级) 信誉: 98 2005-11-26 15:13:52 得分: 0  
                  
看清楚我写的和你的不同
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-26 15:18:14 得分: 0  
                  
试过,也不行。由于存在多语言,用在webconfig中用gb2312,也是不妥的。
Top aoyo 遨游~ 认真生活,努力微笑^_^ 五级(中级) 信誉: 98 2005-11-26 15:45:30 得分: 0  
                  
在Page_Load中加上如下代码: Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 试试
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-26 16:12:19 得分: 0  
                  
多谢帮忙。可惜还是不行。页面有点变化,但是仍然是乱码。
Top aoyo 遨游~ 认真生活,努力微笑^_^ 五级(中级) 信誉: 98 2005-11-26 16:16:34 得分: 0  
                  
你的IE中的编码设置的是什么?
Top banmuhuangci 待缘 三级(初级) 信誉: 100 2005-11-26 16:20:10 得分: 5  
                  
就是这句<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>由于你的ASP放在了.net的应用程序层底下,所以也引用了WEB。CONFIG 的设置。GB2312不会影响英文的显示!
Top banmuhuangci 待缘 三级(初级) 信誉: 100 2005-11-26 16:21:17 得分: 5  
                  
如果设置正确了还是不行,建议你在中文的服务器上运行看看
Top shooper 东东 四级(中级) 信誉: 99 2005-11-26 16:26:17 得分: 5  
                  
<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>一般用到javascript,我才会用这一句。如果没有javascript的话,用utf-8也不会是乱码阿
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-26 16:30:09 得分: 0  
                  
在我本机(中文)上,显示正常。
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-26 16:38:26 得分: 0  
                  
似乎与IE的编码设置无关。我的aspx文件保存为utf-8,unicode,ansi都不行。总结:1.英文服务器;2.aspx页面,含有中文;3.页面的html中加了<meta http-equiv="Content-Type" content="text/html; charset=gb2312">(gb2312或utf-8);4.在Web.config文件中:<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>(utf-8或gb2312);5.Page_Load中:Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 6.将aspx文件保存成utf-8,unicode等各种格式;更改了以上3,4,5,6的各种设置,都无法解决中文显示乱码的问题。
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-26 17:47:50 得分: 0  
                  
希望能有哪位高手指点一二,在下不胜感激。
Top shooper 东东 四级(中级) 信誉: 99 2005-11-28 9:47:46 得分: 5  
                  
我们这里也有英文服务器的,没有这个问题,建议您换一台英文服务器试试,我怀疑是系统的问题
Top edwardfay 我的播客:pod.91vc.com/edwardzwh 二级(初级) 信誉: 97 2005-11-28 9:51:47 得分: 10  
                  
在Web.config文件中:<globalization requestEncoding="utf-8" responseEncoding="utf-8" />页面上也加了<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,结果还是不行。------------------文件也要用utf-8格式保存(文件-高级保存选项),显示的时候<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,也要用utf-8
Top xczgb 嗯.嗯.该为她负点责任了... 五级(中级) 信誉: 98 2005-11-28 10:00:53 得分: 5  
                  
反正把所有的都设置为“utf-8”
Top mailxin   三级(初级) 信誉: 100 2005-11-28 10:10:13 得分: 5  
                  
将<globalization requestEncoding="utf-8" responseEncoding="utf-8" />改成<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
Top bluet2001 bluet 一级(初级) 信誉: 100 2005-11-28 10:36:57 得分: 5  
                  
utf-8是通用的,设成这样应该没问题你的系统默认语言是中文吗?如果不是的话请改成中文,这样才能正常显示中文
Top hxz2008 心语 二级(初级) 信誉: 100 2005-11-28 11:33:59 得分: 5  
                  
非常关注 我的服务器是日文win2000server系统 网页由中日文混合 但是乱码问题非常头大
Top hxz2008 心语 二级(初级) 信誉: 100 2005-11-28 12:55:19 得分: 20  
                  
关于内码   windows 98时代的电脑。 中文系统采用的是GB码,日文系统采用的是JIS码。内码是以123456789和26个英文数字所组成。   譬如如:中文系统里下:内码(0000)对应汉字是(一),而在日文系统里,内码(0000)对应汉字是(十)的话,中文的汉字“一个”,在日文系统就可能变成了“十万”。GB码的汉字,在日文系统下,就变成了乱七八糟的符号和文字。而导致乱码。 英文字母与数字在任何系统下的编码都是样的,所以它不会乱码。   在这样的情况下,就只能通过转码软件来实现中文系统上运行日文软件。比较著名的有Richwin For Windows;南极星;译典通;金山快译等转码软件。   而Windows 2000和Windows XP系统均采用一种新的编码-Unicode。中文也称统一码,万国码。Unicode的编码,是把世界所有的文字、符号统一编码。不同国家,不同的文字,Unicode都给它们定义一个唯一的一个内码。不会像GB码与JIS码,同一个汉字,编码不同,结果导致乱码。   以Unicode为内码编程的软件,不管是世界任何一种语言的软件。在以Unicode为内码的环境下(如:win2000、XP)下都能正常显示。   微软的所有软件,都是使用Unicode内码编程。就可以简单说,只要是微软的产品,在微软的系统XP、2000、2003上运行,都不会有乱码。   如:中文的office在日文的XP,不会有乱码。日文的office在中文的XP,也不会有乱码。 微软的日文词典bookshelf在中文XP下畅行无阻。 而且微软的MSN,可以同时支持世界上所有的语言,中文、日文、韩文、阿拉伯文、印度文、希伯来文都没有问题。再多语言上比ICQ和QQ不知强大到哪里去。 微软的网页制作软件Microsoft-frontpage可以在网页上支持任何语言和文字。 微软的IE浏览器。收藏夹可以显示各国的文字。我不想换掉IE就是因为其他的收藏夹不能显示其他语言。否则早觉得IE不好用了。 微软的outlook Express。也是绝对的超级支持世界上的任何语言。而著名的foxmail,也没有OE所支持的内码多。 关于微软产品的语言包及其他   因为XP、2000都是以Unicode码为内码,所以不同的文字在XP、2000上面就不会有乱码。所以开发了多国语言的XP、office。使得不同语言版本的xp、office能在同一个系统下运行。 多语言的XP必须先安装英文专业版XP,再安装语言包。就能使用不同的语言的操作界面。 多语言的Office2003在任何语言的windows里同样能够安装。而且不需要以英文版为基础。在中文版的基础上可以直接安装日文语言包。 不管是中文版office 2003,日文版office 2003,只要再安装其他一个语言包,就等于拥有了其他语言版的office。网上的多国语言office 2003。   笔者曾经无聊。把30多个语言的语言包全部安装上了。过了一把语言隐。不过很多语言都是压根没有接触过的。看着平时很少见到的阿拉伯、希伯来文,印度文、俄文感觉都特别新颖。   Windows XP切换语言的时候需要注销一下。office2003切换语言的时候则需把office关闭后重新运行即可。不用重新启动 在XP、2000、2003非Unicode程序的运行   但即便微软率先支持了Unicode码。但是其他的软件商并没有意识到Unicode不带来乱码的好处,依旧使用传统的内码来编程。很多中国的软件还是用GB码,台湾的软件用B5码,日文还使用JIS码。并没有使用Unicode码。   微软的推出的AppLocale,这个软件就是为了解决使用Unicode内码以外的不同语言内码的软件在不同语言环境下使用而开发。不过这个软件只是开发过程。还不是很好用。很多软件都不能很好的支持。 除使用AppLocale以外Windows家族以Unicode为核心的XP、2000可以向下支持其他的内码。 设定方法“开始—控制面板—区域和语言选项—高级—非Unicode程序的语言”内选中文(中国)、中文(台湾)、日文就中国就兼容了GB码,选台湾就兼容了B5码,选日文就兼容了JIS码。 如果你想让电脑运行繁体的软件,日文的软件。就可以用这个不借助转码软件的办法。但是这样必须得重新启动。但是有些GB码的软件,QQ之类的,可能就是乱码了。还是可以选择转码软件。 有远见的厂商,应该以后都用Unicode来编程。这样就不会只能在简体中文系统上运行,或者只在繁体中文上运行。用Unicode来编码,只要电脑是以Unicode为核心的XP、2000、2003、Linux都可畅行无阻。        编写网页:如果想让自己的网页同时显示多国语言,可以用支持多国语言最好的Micro-soft FrontPage把内码设定为Unicode。而Macromedia DreamWerver的多语言支持就不如Micro-soft FrontPage好。 在选择记事本保存文档的话。有ACILL、Unicode、UTF-8、Unicode big endian四种 ACILL是第一项。如果你的电脑非Unicode内码选择是中文简体。那么保存以后就是GB码。如果选择中文繁体。保存以后就是B5码。如果是日文,那就是JIS码。如果别人的电脑非Uncode内码与你选择不一样的话。可能他就必须要转码。如果更改了自己非Unicode程序的内码,那么自己用ACILL保存的文件,也都统统变成了乱码了。 记事本的转码有一个窍门。只要用IE打开记事本,再用IE浏览网页时“查看——编码”那样转码,就不用通过借助其他软件。 unicode就不用再介绍了。不管非Unicode的程序更改不更改。以此形式保存的文档。永远不会乱码。 UTF8是Unicode的缩略。Unicode一个内码是四字节,比较占用空间。而UTF8一个内码是2字节。以Unicode为核心的系统,当然Unicode和UTF8同时支持了。用UTF8存档。更高非Unicode程序的内码,也不会有乱码。 Unicode big endian是苹果电脑的Unicode文档格式吧。这个没有怎么用过。 tips:除此之外Unicode还有UTF7 UTF16。这些我都不知道具体是什么。平时也很少用到。
Top gyf19 秋天的云 一星(中级) 信誉: 100 2005-11-28 13:04:49 得分: 10  
                  
<configuration> <system.web> <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN" /> </system.web></configuration>
Top gyf19 秋天的云 一星(中级) 信誉: 100 2005-11-28 13:05:28 得分: 5  
                  
或者<configuration> <system.web> <globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" uiCulture="zh-CN" /> </system.web></configuration>
Top lulei 中子能 五级(中级) 信誉: 85 2005-11-28 13:22:10 得分: 0  
                  
关注
Top zeusvenus 清柳)(C#/ASP.NET 两星(中级) 信誉: 134 2005-11-28 13:22:55 得分: 5  
                  
看看本版的FAQ,有关于这种乱码情况的各种处理方法。
Top wu896222 WYF 四级(中级) 信誉: 90 2005-11-28 13:59:23 得分: 10  
                  
如果是页面录入中文显示乱码,在WEB.CONFIG中这样写<globalization responseEncoding="gb2312" requestEncoding="gb2312" fileEncoding="gb2312" culture="zh-CN"/>可以解决;如果是从数据库里读出来的中文数据显示乱码,(想必数据库也是英文版的),解决方法可以是更改数据库字段类型为nvarchar或ntext,也可以对数据进行GB2312与ISO-8859-1的转码.
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-28 15:18:44 得分: 0  
                  
周日没来,发现这么多人回复,感到很兴奋。这个问题到现在还一直存在。对于楼上这么多位兄弟的帮忙,在下甚为感激。容我再描述一下原问题所在,以及说一下我发现的问题。服务器:英文。未安装其他任何语言包,输入法;程序:是在我本地机器(中文)上写的,然后需要打包传到那台服务器上。其中,里面有一部分asp.net,asp,html/htm文件,部分asp.net页面中嵌入asp文件;问题:部署到服务器上后,直接浏览asp页面,显示正常。当浏览aspx页面时,显示乱码,其嵌入的asp页面也跟着乱码(但单独显示时正常)。这一部分是出在中文页面上。思考以及发现的问题:因为只有aspx页面存在乱码问题,所以我认为是aspx的保存编码格式不正确。我测试了gb2312,unicode,utf-8,unicode(utf-8)等编码格式,发现只有两种gb2312和unicode可以正常显示。所以我把aspx保存为gb2312格式,asp和html/htm也保存为gb2312格式。发现显示仍然和前面一样,aspx,asp全部显示乱码。我就把aspx保存成unicode格式,asp/html/htm格式不变。结果aspx部分显示正常,嵌入的asp部分乱码。我就把aspx,asp都改成unicode格式,发现asp不支持unicode。我就把asp改成unicode -codepage 1200,结果aspx(嵌入asp)显示正常,但其他asp页面提示asp页面中不支持unicode编码格式(因为被嵌入的asp页面是共用的,其他asp页面也要潜入该asp页面)。
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-28 15:56:23 得分: 0  
                  
而当把asp页面保存为unicode (UTF-8 with signature) - Codepage 65001,则显示正常,现在还不清楚打完包后,是否正常。
Top lovvver EBright电子闪光系列软件 一星(中级) 信誉: 98 2005-11-28 16:20:42 得分: 0  
                  
接着上面偶然的测试,竟然发现问题已经解决。也就是:把所有的aspx,asp,html/htm的编码格式改为Unicode (UTF-8 with signature) - Codepage 65001(其他的unicode格式发现不行)。多谢各位的帮忙与支持。
 
原创粉丝点击