网站出现乱码的解决方法

阅读  ·  发布日期 2020-06-29 17:07  ·  admin

网站显示出现乱码的情况,通常是由于编码不统一引起,因此为了避免出现乱码,就必须让网页编码与输入编码格式统一,在做多国语言版时跟应注意这个问题。西宁网站建设网站设计西宁网站制作★网页设计-599元全包;企业网络推广☆西宁网站优化seo☆关键词排名☆百度快照-2200元全年展示;做网站优化排名-西宁网站建设公司☎13172194676(注:选好网站模板,请联系客服,百度云盘下载提取网站模板)

做英文版如果用GB2312,虽然在简体中文版的操作系统上正常,但是在繁体操作系统上就可能看到乱码现象,因此制作多国语言最好用utf-8格式。

打开新建一个ASP页面,相信玩ASP的朋友都会留意到,许多下载的源码里,页面最上方一般都有一句:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>前面的language应该不用多说了,vbscript就是ASP默认的脚本语言,其实完全可以不用写,写了好像还会影响页面执行效率,在这里我们先不讨论这个问题. 后面的codepage就是关键了,目的就是告诉浏览器,此页面是何种编码,936代表是简体中文,而950代表繁体中文,65001就是我们今天说的 UTF-8编码了.我们将936改成65001,整句如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
再加上输出几个中文字看看能不能正确显示吧.
<%
Response.Write "第一次测试UTF-8页面"
%>
OK,直接点击"保存",执行这个页面看看,如果不出意外,大家可能看到显示出的是 "一尾UTF-8页" 这几个字,中文有乱码的现象,什么原因呢?
OK,请大家再点击最上面的 "文件" 菜单,选择"另存为",最下面一行有个编码,默认应该是ANSI的,请大家点下拉框,选择UTF-8,再点保存,再执行试试看,如果不出意外,乱得更厉害了,呵呵,晕了吧.别急,想想原因,因为我们做的页面是HTML返回的,以前我们写HTML时,看到body前面,也就是head里都有一句meta,应该是这样的:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
也就是指定页面以gb2312编码返回结果,一定要写在有返回结果输出的前面.大家都知道gb2312是简体中文吧,我们今天说的是UTF-8编码,我们就将gb2312改成UTF-8吧,全部代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
Response.Write "第一次测试UTF-8页面"
%>
再看,这次正常了。

得出结论:采用UTF-8编码,除了要将文件另存为UTF-8格式之外,还需要同时指定codepage及charset.

但有了这些还不够,在制作过程中还会出现一些乱码的问题。为了。保证asp叶面一定不会出现乱码的代码应该是这样的:<%@ CODEPAGE=65001 %> 
<% Response.CodePage=65001%> 
<% Response.Charset="UTF-8" %> 


建议:可以建立公共文件code.asp,或则直接写到习惯的conn.asp中。

ASP程序在同一个站点中,如果出现UTF-8编码的程序,又有GB2312的程序,在浏览完UTF-8编码的页面后,再浏览GB2312的页面,GB2312编码的页面就会出现乱码. 

出现这样的问题,可能是:当你浏览UTF-8编码的时候,服务器默认用UTF-8的引擎来输出html,当你用再浏览GB2312的页面时,它还是用UTF-8来输出本应是GB2312编码的页面.所以会乱码. 

如果要将他们转为同一种编码可能会很痛苦. 

还有一种解决方法是:不用作任何转换,保持原来的编码不变.在Utf-8程序的第一行加上:

 

CODE:  [Copy to clipboard]
<%Session.CodePage=65001%>

 


在GB2312程序的第一行加上

 

CODE:  [Copy to clipboard]
<%Session.CodePage=936%>



    这样就可以了.当然如果你的所有程序都在第一行include 一个文件的话,把上面的代码放在被include 的文件第一行就马上解决问题了. 
Session.CodePage是指定服务器用哪种编辑来输出.有了它的声明,服务器就不会用默认的编码引擎来输出了.