`
SwiftHorse
  • 浏览: 209480 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

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

分享到:
评论
3 楼 SwiftHorse 2007-07-26  
imjl 写道
我晕,,php+mysql还要经过odbc?

直接连接,,,

我习惯全部utf-8,,,数据链接,数据库定义,字段定义,代码编码格式。

执行查询前 ,,,set names 'utf-8'


哈哈,你应该没有仔细看我写的东东,我是ASP连接MYSQL用的是ODBC,PHP连接MYSQL并没有说是用到ODBC的。
2 楼 imjl 2007-07-26  
我晕,,php+mysql还要经过odbc?

直接连接,,,

我习惯全部utf-8,,,数据链接,数据库定义,字段定义,代码编码格式。

执行查询前 ,,,set names 'utf-8'
1 楼 hax 2007-07-23  
你的这个问题从你的描述来看,就是出在odbc driver上。可能Beta版本存在一些问题,没有正确的读取到client的charset配置而已。

相关推荐

Global site tag (gtag.js) - Google Analytics