分类: 系统运维
2010-04-17 23:04:37
相信有许多ASP编程爱好者都碰到过这样的问题,在本机上测试的时候,当遇到与数据库交互时,数据库中的中文会变成乱码显示出来,而英文则不会。刚开始我的解决方法是新建一个该站点的虚拟目录,不过这只是治标不治本的办法,问题随时都会再出现,我们在享受编程带来的乐趣时当然是不能容忍这样的事情来打扰啦~~~,通过在网上查找原因,终于找到了根本的解决方法。
我上面不是说中文会出现乱码而英文不会吗?第一就应该猜想是不是编码不正确的原因!ASP默认的内部编码是Unicode,当页面没有指定的时候则有时候会出现乱码的问题(为什么是有时候我也觉得很奇怪,希望高手在评论栏中解释一下),于是解决方法就是:在连接数据库conn.asp文件中添加<%@ codepage=936%>,就可以正常显示中文。
PS:
<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=65001%>UTF-8797000024
codepage指定了IIS按什么编码读取传递过来的串串(表单提交,地址栏传递等)。
也指定了所有文本变量从Unicode转换到的编码,
也就指定了从数据库取出的数据从Unicode转换到的编码。
------------------------------------------------------------------------------------
UTF-8编码处理中文时主要是注意两点:
第一,在页首添加<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>我相信,如果大家用的是DW的话,只要选择的是VBSCRIPT,一般可以自动生成;
第二,在使用VBSCRIPT前,添加<%Session.CodePage="65001"%>,我是添加了这句后就好了。
-------------------------------------------------------------------------------------------------
也许你遇到过这样的问题,当我们用ASP从数据库中读取中文的时候出现乱码,我今天就遇到这种情况:
解决的办法是:
首先看你的代码中是否包含了这句代码 <
其次看一下这句代码是不是出现在连接数据库代码之前,如果不是放在连接数据库代码的前面也可能会出错,一般建议放在最顶端,这样最保险。
另外我们要加的这句代码也可能是
<" CODEPAGE="650"%> 繁体中文
<" CODEPAGE="65001"%> UTF-8797000024
这取决你使用的编码,如果你使用的编码是utf-8
那么你就用 <" CODEPAGE="65001"%>
如果你是使用的gb2312
那么你就应该用 <" CODEPAGE="936"%>
具体要看你用什么编码了。
------------------------------------------------------------------------------------------
ASP+Access UTF-8 网页乱码问题
用asp,access数据库,网页编码是utf-8。出现乱码,所有从数据库里读的中文字都是乱码。
问题解决:
<
< http-equiv="Content-Type" content="text/html; charset=UTF-8">
一个也不能少
另外,文件要存为utf-8格式的
还有,程序不能出错,嘿嘿
要是有错误的程序,那么刚打开的时候正常的,刷新了就乱码了
这里说的出错时不会使整个页面不显示的出错。
1,<用什么内码去传输你的数据,加上这句话,就强制ASP用UTF来传输数据。
尝试在<>下加一行:
<%Session.CodePage=65001%>