IIS+ASP+MySQL8.0+中文乱码解决方案(2019.7)
困扰了我多天的ASP与MySQL操作中中文乱码问题终于得到了解决,真是很有成就感;多天以来,在探索使用ASP查询以及写入MySQL数据库中汉字的成功实现,我花费了大量的时间,几乎查看了网络上所有关于ASP结合MySQL的文字,但是尽管看的多,收效却甚微,原因在于,MySQL一般是与PHP结合使用,基本上很难找到一个在windows系统下使用ASP操作MySQL的成功案例,更难找到这方面的问题解决方案,所以,要想解决这一问题,只能从其他的程序语言中探索其中的奥妙。大概越是高级的东西,越需要较高的操作技能,所以要想掌握,必须要付出,并不断的探索;只要有一个坚定的求胜信念,没有解决不了的问题。
现在我已成功解决了这一问题,在此作一总结,已供遇到这方面问题的网友参考,以免少走弯路。
网络上的不少文字都谈到了出现中文乱码时修改MySQL的my.ini文件中的
[code][mysql] default-character-set=latin1
与
[code][mysqld] default-character-set=latin1
这两处为default-character-set=gb2312(或gbk,utf8);这当然没错,至少在数据库中是肯定可以显示汉字了,但是在页面中用语句查询却未必能成功,可能依然是乱码。
或者说更改数据库或者mysql字符集
查看mysql支持的字符集
[code]show character set;
查看数据库编码
[code]show variables like ‘character_set%’;
查看当前mysql使用的字符集
[code]show variables like ‘character%’;
解析:
character_set_client:客户端请求数据的字符集
character_set_connection:客户机与服务器连接的字符集
character_set_database:默认数据库的字符集;如果没有默认数据库,就会使用 character_set_server指定的字符集(建议不要随意更改)
character_set_filesystem:把 character_set_client转换character_set_filesystem (默认为binary, 不做任何转换)
character_set_results:返回给客户端的字符集
character_set_server:数据库服务器的默认字符集
character_set_system:系统字符集,默认utf8。(用于数据库的表、列和存储在目录表中函数的名字)
character_sets_dir:mysql字符集文件的保存路径
产生乱码的原因
character_set_client与实际不符合
character_set_results与客户端页面不符合
查看当前数据库的校对规则
[code]show variables like ‘collation%’;
解析:
value的命名规则: 字符集名字+语言+后缀
collation_connection :当前连接的字符集
collation_database :当前日期的默认校对
collation_server :服务器的默认校对
后缀的含义:
ci:不区分大小写
cs:区分大小写
bin:二进制排序
更改字符集
解决乱码问题(一般如下)
[code]set character_set_client = utf8; set character_set_server = utf8; set character_set_connection = utf8; set character_set_database = utf8; set character_set_results = utf8; set collation_connection = utf8_general_ci; set collation_database = utf8_general_ci; set collation_server = utf8_general_ci;
或
[code]set names utf8;
或
在mysql的my.cnf的配置文件中修改或添加下列:
[code][client] default-character-set = utf8 [mysqld] character_set_server = utf8
又又说在页面的页头加上
[code]<meta http-equiv="Content-Type"content="text/html;charset=gb2312">;
其实这也是无关紧要的,就是加了大概不会又多少用。我也作过其他的探索,比如更改Apache服务器的字符集、重装ODBC驱动等等,所以的可能的解决办法都试了,最后才知道,也许解决问题的方法并不在此。
其实解决ASP与MySQL数据操作中中文乱码问的关键在于数据连接,我们只需要在数据连接中加入
[code]“OPTION=3;stmt=SETNAMES GB2312”
即可,但是位置与格式却非常重要;也有不少网友提到了这点,但基本都是在PHP中的编码,在ASP中的完整格式
则应如下:
[code]<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> <title>ASP向MySQL数据库中添加数据</title> </head> <% strconnection="driver={mysql odbc 3.51 driver};database=gaorui;server=localhost;uid=root;password=luo;OPTION=3;stmt=SET NAMES GB2312" set adodataconn = server.createobject("adodb.connection") adodataconn.open strconnection strquery = "select * from user" set rs = adodataconn.execute(strquery) if not rs.bof then %> <body> <table> <tr> <td><b>姓名</b></td> <td><b>密码</b></td> </tr> <% do while not rs.eof %> <tr> <td><%=rs("username")%></td> <td><%=rs("password")%></td> </tr> <% rs.movenext loop %> </table> <% else respon 3ff7 se.write("无数据.") end if rs.close adodataconn.close set adodataconn = nothing set rsemaildata = nothing %> </body> </html>
添加数据也应该如此,如:
[code]<% username=request.form("username") password=request.form("password") strconnection="driver={mysql odbc 3.51 driver};database=gaorui;server=localhost;uid=root;password=luo;OPTION=3;stmt=SET NAMES GB2312" set conn = server.createobject("adodb.connection") conn.open strconnection set rs=server.CreateObject("adodb.recordset") sql="select * from user" rs.open sql,conn,1,3 rs.addnew rs("username")=username rs("password")=password rs.update rs.close response.write "<script language=javascript>alert('添加成功!');window.location.href='write.html';</script>" response.End %>
在运用了这种解决方案之后,ASP与MySQL数据操作中的中文乱码问题就可以成功的解决!
参考文章
https://blog.csdn.net/GX_1_11_real/article/details/80748227
https://blog.csdn.net/zhaojunjie_dream/article/details/79979672
- IIS+ASP+MySQL8.0+数据库连接解决方案(2019.7)
- windows命令行下对mysql 操作中文乱码完美解决方案
- Mysql中文乱码解决方案(转)
- linux mysql的中文乱码解决方案
- JDBC驱动mysql的中文乱码解决方案
- mysql 插入中文乱码解决方案 转
- Mysql中文乱码问题完美解决方案
- Mysql5.0中文乱码解决方案
- Mysql中文乱码问题完美解决方案
- mysql 插入中文乱码解决方案
- PHP与MYSQL搭配出现中文乱码的“终极”解决方案
- mysql 插入中文乱码解决方案
- Ubuntu下Mysql中文乱码问题解决方案
- Mysql中文乱码问题完美解决方案
- Mysql中文乱码问题完美解决方案
- MySQL中文乱码解决方案集锦
- mysql中文乱码解决方案
- MySQL中文乱码解决方案
- Mysql中文乱码问题完美解决方案(包括建库、导入数据、网页)
- Mac版MySQL插入中文乱码解决方案