ASP 连接 mysql 5.0.18版本 的中文乱码的问题

ASP 连接 mysql 5.0.18版本 的中文乱码的问题

 

刚接触mysql数据库几天,发现在asp获取数据后的中文变成了乱码  上网找资料 很少有ASP连接mysql数据库的,几经学习,搞定了,

 

一.数据库的字符集设置

首先在my.ini文件中的下列代码中修改默认的字符集设置 ,你也可以改为别的utf8

 

......

 

[client]

port=3306

 

[mysql]

default-character-set=gbk

 

......

 

[mysqld]

 

# The TCP/IP Port the MySQL Server will listen on

port=3306

 

......

default-character-set=gbk

 

......

 

改好之后,我们再在MySQL控制台MySQL Command Line Client中连上数据库中

执行一下语句

 

mysql> show variables like '%char%';

 

执行的结果如下:

+--------------------------+-------------------------------------+

| Variable_name            | Value                               |

+--------------------------+-------------------------------------+

| character_set_client     | gbk                                 |

| character_set_connection | gbk                                 |

| character_set_database   | gbk                                 |

| character_set_results    | gbk                                 |

| character_set_server     | gbk                                 |

| character_set_system     | utf8                                |

| character_sets_dir       | D:/MySQL Server 5.0/share/charsets/ |

+--------------------------+-------------------------------------+

7 rows in set (0.28 sec)

以上的Value值除character_sets_dircharacter_set_system 外如果不是我们要设置的gbk

则我们可以通过

mysql> set character_set_database = 'gbk';

进行修改为gbk

character_set_system Value值是系统写死的 utf8 , 不能进行更改,(一位高手讲的)

可以下载源代码 , VC.net 打开mysql.sln 工程 , 打开在mysqld工程中的mysqld.cpp,

找到这个函数,  mysql_init_variables,里边有两句

system_charset_info= &my_charset_utf8_general_ci;

files_charset_info= &my_charset_utf8_general_ci;

封掉,改为

  system_charset_info= &my_charset_gbk_chinese_ci;

  files_charset_info= &my_charset_gbk_chinese_ci;

编译后在client_debug目录下生成mysqld-debug.exe ,改名mysqld-nt.exe 放到mysql/bin下就OK

 

如果修改了character_set_system 的值,则表名也支持中文了,为utf8 时候表名不支持中的

当然了 做程序开发的表名和字段名命名为中文的也比较少的 (命名规则 ^_^

 

这一切都设置好之后,下面就是驱动的设置了

 

二.MySQLODBC驱动设置

 

首先你要下载一个mysqlODBC驱动

我是在官方网站www.mysql.com 上下载的mysql-connector-odbc-3.51.19-win32.

安装好之后,打开数据源(ODBC),在ODBC数据源管理器中添加刚才安装的mysqlODBC数据驱动 MySQL ODBC 3.51 Driver  对应的项就不用介绍了 主要是填写的项如图就行了

之后可是点击TEST按钮测试一下

 

驱动配置好之后,

 

三.Asp的连接配置

主要是连接字符串的设置

ConnectionString = "driver={mysql odbc 3.51 driver}; database=bb;server=192.168.140.253;

uid=root;password=kjlink;Option=3;Stmt=Set Names 'GBK'"

Set Conn = Server.CreateObject("ADODB.Connection")


可以用一下的代码进行测试:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

<title>无标题文档</title>

</head>

<body>

<%

StrConn = "driver={mysql odbc 3.51 driver}; database=bb;server=192.168.100.100;

uid=root;password=sa;Option=3;Stmt=Set Names 'GBK'"

 

Set Conn = Server.CreateObject("ADODB.Connection")

 

Conn.open StrConn

%>

<%

                            set rs_modules = Server.createobject("ADODB.Recordset")

                            sql = "insert into user values (1,' 显示中文汉字了^_^ ')"

                            rs_modules.CursorType=3

                            rs_modules.CursorLocation=3

                            rs_modules.Open sql,Conn

                           

                            sql1 = "Select ID, name from user"

                            rs_modules.CursorType=3

                            rs_modules.CursorLocation=3

                            rs_modules.Open sql1,Conn

 

                            while not rs_modules.eof

                                     Response.Write rs_modules("name" )

                            rs_modules.movenext

                            wend

                            rs_modules.close

                            set rs_modules=nothing

                            %>

</body>

</html>

 

注释:此测试示例是向192.168.100.100主机的bb数据库的user表中添加一条记录,然后在读出来。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值