表结构:
CREATE TABLE `t1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM   DEFAULT CHARSET=gbk
存储过程BEGINDECLARE i INT DEFAULT 1;
DECLARE n VARCHAR(15) CHARACTER SET GBK;
set @n='abc桃子';WHILE i < 500 DO
 INSERT INTO t1 VALUES (i, concat(@n, i));SET i = i + 1;END WHILE;
END
表t1的name字段总是乱码,求解

解决方案 »

  1.   

    set nsmes gbk;
    试试
    show variables like 'char%'; 
    贴结果出来看看
      

  2.   

    加set names gbk;没用的mysql> show variables like 'char%';
    +--------------------------+--------------------------------------------+
    | Variable_name            | Value                                      |
    +--------------------------+--------------------------------------------+
    | character_set_client     | utf8                                       |
    | character_set_connection | utf8                                       |
    | character_set_database   | gbk                                        |
    | character_set_filesystem | binary                                     |
    | character_set_results    | utf8                                       |
    | character_set_server     | gbk                                        |
    | character_set_system     | utf8                                       |
    | character_sets_dir       | /home/taozi.ly/mysql/share/mysql/charsets/ |
    +--------------------------+--------------------------------------------+
    8 rows in setmysql> 
      

  3.   

    set names gbk;
    CREATE TABLE `t1` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
    再调用你的SP,看看结果
      

  4.   

    我的数据库是安装的utf8编码的,不过这个没有关系的;只有数据库和表,还有网页编码是gbk的,然后在
    程序里面运行set names gbk;
    最后在执行insert 语句,都不会乱码的,今天第一次尝试存储过程才遇到乱码的问题
      

  5.   

    参考下贴中的方法,有一个专门是 存储过程的。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  6.   

    9.  存储过程参数乱码 create procedure t ( aa char(10) charset 'gbk')
    未完
      

  7.   

    找到问题了,concat函数的问题,如果连接的2个变量一个是varchar,一个是int,就会乱码