我在网上搜罗了一下,遇到该问题的挺多,但解决问题的没有。
我在my.ini中已经设置了:default-character-set=gbk
我在ASP中也设置了:meta http-equiv="Content-Type" content="text/html; charset=gb2312
同时也设置了codepage="65001"
但问题依旧没能解决。
我甚至已经作好了说服客户的理由,要求改用PHP+mysql,实在是不想在这上面再花时间,为解决该问题都已经花了2天时间,但问题没有一点进展。仔细检查过写入数据库时的编码,发现写入时是GBK2312,表在创建时也时用的该编码。我决定作最后一次尝试,会不会是ASP通过ODBC连接时,该ODBC版本存在问题,我用的是版本是:mysql-connector-odbc-5.00.11-beta-gpl-win32.zip,从www.mysql.com上下载。该版本在建立DSN时没有连接选项、高级选项设置,我希望通过myodbc 3.5.1来帮助我解决该问题,于是卸载原来安装的ODBC,重新安装myodbc 3.5.1,并且在LOGIN面版中设置好默认数据库,在Advanced的FLAG3中点选Read options From my.cnf。配置好DNS,重启机器。
奇迹终于出现,问题解决。乱码不再困扰我!
我的ASP连接MYSQL数据库代码简洁到不能再简洁
strconnection = "dsn=myoa;"
set adodataconn = server.createobject("adodb.connection")
adodataconn.open strconnection
strquery = "select * from user"
set ll = adodataconn.execute(strquery)
为什么高版本不行,低版本倒可以暂还不清楚,待有时间时再继续搞清这个问题,先记录下该过程和解决方法。看过很多关于MYSQL乱码的终结篇,那些都没有包含我所写的问题,今天写下这篇MYSQL+ASP乱码问题的终结篇。