asp调用mysql存储过程,参数有中文,将参数插入到表后查询为乱码。现在有两种情况
1、网页不调用存储过程,而只是用INSERT,UPDATE操作语句更新数据时,中文插入或更新无问题
2、存储过程中的中文参数设置为CHARACTER SET utf8后,在库中用CALL PRODECURE(A,B)时无乱码,但网页调用仍是乱码。
3、网页设置为UTF-8
4、show variables like 'character_set_%';结果
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
不知道问题出在哪?
1、网页不调用存储过程,而只是用INSERT,UPDATE操作语句更新数据时,中文插入或更新无问题
2、存储过程中的中文参数设置为CHARACTER SET utf8后,在库中用CALL PRODECURE(A,B)时无乱码,但网页调用仍是乱码。
3、网页设置为UTF-8
4、show variables like 'character_set_%';结果
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
不知道问题出在哪?
解决方案 »
- mysql_gui_tools中输入中文乱码
- mysql_errno()的困惑
- 求数据库批量替换关键词的MYSQL代码
- mysql查询ID所在的行号
- mysql fetch row 为什么会取到空值。
- JSP网页里是charset=UTF-8,Mysql5的数据库也设成了UTF-8,可为啥通过JSP网页存取数据库,中文还是乱码?
- 有什么错么?为什么mysql下老是错?
- SQL数据库数据备份的问题
- window2000取得linux下的My Sql数据库数据!?
- 表设计问题
- Wrong username/password. Access denied.是什么错误?
- 如何使用bulk insert插入多个文件
系统提示报错
错误码: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''你好呀',$M_FOrder INT)
设置字符集:
[mysql]no-beep
default-character-set=gb2312
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"#Path to the database root
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
..
declare sVar varchar(20);
set sVar = '试验';
..
insert into testtbl values (svar,sPara);
然后通过mysql客户端,执行 call test ('试验');再通过PHP来执行个过程,看一下结果对比。 特别是看PHP调用后两个字段是否都是乱码,还是仅其中一个是?
试验 试验
在ASP页面中执行存储过程test ('试验');
Dim cmdobj
set cmdObj=Server.CreateObject("ADODB.Command")
cmdObj.CommandText="checkfont"
cmdObj.CommandType=4
set cmdObj.ActiveConnection=DB_Conn
cmdObj.Prepared=True
cmdObj.Parameters.Append cmdobj.CreateParameter("fsPara",200,1,256,"测试")
Set rsObj=cmdObj.Execute
结果:
试验 ²âÊÔ
130 adWChar Unicode 字符串 (DBTYPE_WSTR)。
204 adVarBinary 二进制值
201 adLongVarChar 长字符串值
感觉上应该是 202