提交中文到数据库产生乱码 网页用的是utf8,mysql用的也是utf8编码,提交至数据库前中文显示正常,但提交后则出现乱码,不知道为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql_query("set names utf8")试一下看看。 我用的是ASP,提交数据是调用的存储过程。提交前测试的中文没有出现乱码,提交后就发现部分中文出现了乱码了。在mysql语句里面有没有设置参数变量编码的? 以前有人有碰到过类似的,升级一下connector驱动 就好了, 你的connector的版本是多少。 mysql-connector-odbc-5.1.5-win32,这个版本够不够 先直接用MySQL Query Browser (官方工具) 看一下数据库中的内容是否正常。 下载了一个MySQL Query Browser,查看数据是正常的呀,不乱码,但在网页查出来的数据显示为乱码呢?页面也设置为UTF8 OK, 这样说明数据库的是正常的,问题可以定位在ASP代码端了。1。 网页游览器(IE)换个编码试试。2。 你的IIS服务器的区域设置是什么? 1.网页UTF8编码是没问题的,我的其它页面都是用这个编码向MYSQL提交数据,都没有问题.2.现在这个页面是往mysql提交数据没有问题,显示出来的查询结果是正确的。但向存储过程提交有中文字符的参数后,查出来的就是乱码,把参数加CHARACTER SET utf8也不行 我在存储过程中建了一个表PMC_WorkNoList,把table1和table2中的数据导入到PMC_WorkNoList。查询table1和table2的数据无问题,查询表PMC_WorkNoList时数据却是乱码 PMC_WorkNoList 建的时候有没有指定字符集?加上 create table xxx (....) CHARACTER SET utf8; CREATE TABLE PMC_WorkNoList( FInterID INT DEFAULT 1, #内码,排序用的 FID INT NULL, FWorkNo VARCHAR(45) NULL, #工程单号 FCustomerName VARCHAR(45) NULL,#客户 FName VARCHAR(128) NULL, #物料名称 FYSSL DECIMAL(28,10) NULL, #订单实数 FZDSS DECIMAL(28,10) NULL, #最低实数 FDeliveryDate VARCHAR(128) CHARACTER SET utf8, #交期 FLevel VARCHAR(128) NULL, #纸材 FBang INT, #磅数 FSize VARCHAR(50) NULL, #纸度) ENGINE=InnoDB DEFAULT CHARSET=utf8;这样写有没有问题?没有报错了 FDeliveryDate这个属性有中文,我的存储过程有输入参数,其中就有这个参数。CREATE DEFINER=`root`@`%` PROCEDURE `P_SelBosCombinedEdit`($M_FWorkNo VARCHAR(45),$M_FDeliveryDate VARCHAR(128))SELECT $M_FDeliveryDate;出现的是乱码,我觉得就是这的问题了。 你的mysql的 my.ini文件中设置了没有?my.ini 中设置 default-character-set=utf8这个改动需要重启服务后生效。 把参数都设置为UTF8CREATE DEFINER=`root`@`%` PROCEDURE `P_SelBosCombinedEdit`($M_FWorkNo VARCHAR(45) CHARACTER SET utf8,$M_FDeliveryDate VARCHAR(128) CHARACTER SET utf8) 错误依旧,不用存储过程提交的那个表table1,FDeliveryDate没有问题,用存储过程提交到表table2的FDeliveryDate就是乱码。用MySQL Query Browser检测的。 my.cnf 最大连接数不生效 mysql中出现FUNCTION xxx.tochar does not exist错误? 一个SQL 语句的写法 MySQL的db表被删除了,怎么办 Replication显示建立起来了,实际上数据不同步的问题? 紧急求助:mysql插入大篇幅文章调用显示出来只是前面的一小部分,怎么办? 一个关于mysql的问题! 请问:在Windows XP下能不能使用phpMyAdmin,怎样用? mysql 查询字符串=数字,比如name=880725279310348288 mysql多库数据汇总 关于MYSQL存储过程的问题.. sql语句截取邮件
试一下看看。
2。 你的IIS服务器的区域设置是什么?
2.现在这个页面是往mysql提交数据没有问题,显示出来的查询结果是正确的。但向存储过程提交有中文字符的参数后,查出来的就是乱码,把参数加CHARACTER SET utf8也不行
FInterID INT DEFAULT 1, #内码,排序用的
FID INT NULL,
FWorkNo VARCHAR(45) NULL, #工程单号
FCustomerName VARCHAR(45) NULL,#客户
FName VARCHAR(128) NULL, #物料名称
FYSSL DECIMAL(28,10) NULL, #订单实数
FZDSS DECIMAL(28,10) NULL, #最低实数
FDeliveryDate VARCHAR(128) CHARACTER SET utf8, #交期
FLevel VARCHAR(128) NULL, #纸材
FBang INT, #磅数
FSize VARCHAR(50) NULL, #纸度
) ENGINE=InnoDB DEFAULT CHARSET=utf8;这样写有没有问题?没有报错了
CREATE DEFINER=`root`@`%` PROCEDURE `P_SelBosCombinedEdit`($M_FWorkNo VARCHAR(45),$M_FDeliveryDate VARCHAR(128))
SELECT $M_FDeliveryDate;
出现的是乱码,我觉得就是这的问题了。
CREATE DEFINER=`root`@`%` PROCEDURE `P_SelBosCombinedEdit`($M_FWorkNo VARCHAR(45) CHARACTER SET utf8,$M_FDeliveryDate VARCHAR(128) CHARACTER SET utf8)