UTF-8编码的ASP页面读取数据库的汉字时显示乱码解决办法
前两天做了一个英文站,一直在发愁一个问题,那就是我明明在页面META中用UTF8声明了页面编码,如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
但是读取数据库中的汉字的时候,显示却都是乱码,不过如果汉字如果不是从数据库中读取的则可以正常显示。后台使用了gb2312编码,显示的也正常。
开始以为是数据库里面数据类型设置的问题的原因,找了好久也没有解决问题。郁闷了两天,最后终于找到问题所在,http://www.5201320.com 。
ASP中要改成UTF-8编码不只改一下页面的字符设置,如果是动态页面,要从数据库中读取汉字。还要在编码声明里设置为UTF-8,拿ASP来说。
<%
'—————常规设置————–
Option Explicit
Response.Buffer = True '是否打开缓存
Session.CodePage = 65001 '脚本UTF-8编码
%>
所以对于动态页面中使用UTF-8编码,既要在页面中声明页面的编码为UTF-8,还要在程序的全局设置中声明脚本的编码为UTF-8。
这个就是页面编码的问题。
一般做程序第一步是设定数据库连接页和一些常量变量的页面,比如我经常用conn.asp文件,这个文件放在所有页面的顶部,用include来包含。
最先的一步还是在conn.asp顶部加上如下代码:
<%@ codepage=936%>
<%Response.Charset="gb2312" %>
<%Session.TimeOut=20
Server.ScriptTimeOut=5000
定义了页面编码和一些信息的过期时间。
而特别是utf-8页面,保存时要特意选择保存格式。
所以楼主和其他一些对编码未特别留意过的朋友要通过此帖记住了。