网页用的是utf8,mysql用的也是utf8编码,提交至数据库前中文显示正常,但提交后则出现乱码,不知道为什么?

解决方案 »

  1.   

    mysql_query("set names utf8")
    试一下看看。
      

  2.   

    我用的是ASP,提交数据是调用的存储过程。提交前测试的中文没有出现乱码,提交后就发现部分中文出现了乱码了。在mysql语句里面有没有设置参数变量编码的?
      

  3.   

    以前有人有碰到过类似的,升级一下connector驱动 就好了, 你的connector的版本是多少。
      

  4.   

    mysql-connector-odbc-5.1.5-win32,这个版本够不够
      

  5.   

    先直接用MySQL Query Browser (官方工具) 看一下数据库中的内容是否正常。
      

  6.   

    下载了一个MySQL Query Browser,查看数据是正常的呀,不乱码,但在网页查出来的数据显示为乱码呢?页面也设置为UTF8
      

  7.   

    OK, 这样说明数据库的是正常的,问题可以定位在ASP代码端了。1。 网页游览器(IE)换个编码试试。
    2。 你的IIS服务器的区域设置是什么?
      

  8.   

    1.网页UTF8编码是没问题的,我的其它页面都是用这个编码向MYSQL提交数据,都没有问题.
    2.现在这个页面是往mysql提交数据没有问题,显示出来的查询结果是正确的。但向存储过程提交有中文字符的参数后,查出来的就是乱码,把参数加CHARACTER SET utf8也不行
      

  9.   

    我在存储过程中建了一个表PMC_WorkNoList,把table1和table2中的数据导入到PMC_WorkNoList。查询table1和table2的数据无问题,查询表PMC_WorkNoList时数据却是乱码
      

  10.   

    PMC_WorkNoList 建的时候有没有指定字符集?加上 create table xxx (....)  CHARACTER SET utf8;
      

  11.   

    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;这样写有没有问题?没有报错了
      

  12.   

    FDeliveryDate这个属性有中文,我的存储过程有输入参数,其中就有这个参数。
    CREATE DEFINER=`root`@`%` PROCEDURE `P_SelBosCombinedEdit`($M_FWorkNo VARCHAR(45),$M_FDeliveryDate VARCHAR(128))
    SELECT $M_FDeliveryDate;
    出现的是乱码,我觉得就是这的问题了。
      

  13.   

    你的mysql的 my.ini文件中设置了没有?my.ini 中设置 default-character-set=utf8这个改动需要重启服务后生效。
      

  14.   

    把参数都设置为UTF8
    CREATE DEFINER=`root`@`%` PROCEDURE `P_SelBosCombinedEdit`($M_FWorkNo VARCHAR(45) CHARACTER SET utf8,$M_FDeliveryDate VARCHAR(128) CHARACTER SET utf8)
      

  15.   

    错误依旧,不用存储过程提交的那个表table1,FDeliveryDate没有问题,用存储过程提交到表table2的FDeliveryDate就是乱码。用MySQL Query Browser检测的。