当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp UTF-8 乱码问题的解决方法小结

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 中的 asp UTF-8 乱码问题的解决方法小结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 63 ::
收藏到网摘: n/a

这里整理下asp页面下出现乱码的问题,好多ajax读取的数据出现乱码的解决方法,asp.net,php等语言的乱码,解决原理都是一样的。 这个是网页编码的问题。中文一般采用的是gb2312这样的话显示中文基本上不会出现乱码。但是有时候我们用的是一种国际上通用的utf-8格式。如果utf-8格式人不是很了解的话是容易出现乱码的。
有许多朋友问过我,为什么在ASP里指定了codepage为65001还经常显示乱码.才子在这里将这个问题详细解释一下,以免很多朋友再走弯路,甚至排斥UTF-8.
asp网页utf8乱码如果你还不知道UTF-8是什么东东,那才子建议你先去搜索一下UTF-8的相关资料吧.
UTF-8编码之所以被越来越多的人接受甚至喜欢,肯定是有道理的,在WEB2.0盛行的今天,在大谈多浏览器兼容的同时,不得不想到字符编码不同所造成的乱码现象同样需要得到很好的处理.....
在N年以前,IE6以下的所有版本,只要没有安装相应的字库,访问相关的页面都是会乱码的,例如,我是IE5 (Windows2000默认) 的版本,在没有安装IE繁体字库的情况下,访问任何繁体页面的网站都是会乱码的,当然前提是该页面采用了BIG5的Charset,而UTF-8作为一种国际编码就能很好的处理该问题,只要将页面存为UTF-8编码格式,再在页面上将codepage及charset全部定义为utf-8就可以在任何客户端浏览器中显示出完全正确的内容,完全不会乱码......
好了,才子这里以ASP页面为例,以一个实例来看具体操作吧:
在这才子推荐用Editplus来写代码,才子也专门写过一篇Editplus的使用教程,有兴趣的朋友可以点击这里 去看看.
打开新建一个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页面"
%>
再执行看看,嗯,这次正常显示了吧.......
asp网页utf8乱码结论:采用UTF-8编码,除了要将文件另存为UTF-8格式之外,还需要同时指定codepage及charset.
保证asp叶面一定不会出现乱码的代码应该是这样的:
(假定是UTF-8的叶子)
<%@ CODEPAGE=65001 %>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
可以建立公共文件code.asp,所有页面都包含这个编码指定.