mysql数据库里中文信息显示乱码终结篇

  前段时间因项目需要,客户要用ASP+Mysql数据库,Mysql数据库中的部分信息是OA中的内容,原OA是PHP+Mysql,因是第一次采用ASP+Mysql,所以碰到一个头痛的问题:有一个表中的字段是varchar(50),存储的是中文内容,我用PHP读取该字段内容,显示正常;我用ASP读取该字段,中文显示为乱码(显示:??????); 我改用DELPHI读取该字段同样显示乱码。

  我在网上搜罗了一下,遇到该问题的挺多,但解决问题的没有。

  我在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乱码问题的终结篇。

你可能感兴趣的:(其他编程)