在本机上有一存储过程,字符GBK操作为(存储过程):
ad为日期变量,用游标
set worklog = concat(worklog, convert(date_format(ad,' %d') USING gbk), _gbk '号 出差');最后worklog更新成 1号 出差  2号 出差  9号 出差 25号 出差本机上执行结果,正常显示
在其它机上执行结果成乱码 ?号 ?? ?号 ?? ?号 ?? ?号 ??其它:MYSQL安装档一样,建库也一样,其它机上就乱码..

解决方案 »

  1.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    按照贴子的中,提供你的 show create table , show variables like ...
      

  3.   

    谢谢ACMAIN_CHM 版大我先看看,要到下星期才能结帖,因为休息,本机上没问题,所以也试不了
      

  4.   

    意思是指存储过程建时: create procedure t ( aa char(10) charset 'gbk')  ??
      

  5.   


    对。建议你先对比一下两台机器上的 show variables ...然后你可以直接 show procedure status; 看一下这个存储过程的默认字符集是什么?
      

  6.   

    哦~ 那到时去对对看.如果存储过程没参数呢? create procedure t (charset 'gbk') ?可是又想了一想,我是用本机上的数据库备份文件,恢复到那台机上的,按理没变才对吖,我也把这个备份恢复到本机,是没有乱的.就是在那台机上乱了. 郁闷..
      

  7.   

    估计是那台机的字符集设置。对比完 show variables liek 'char之后再检查其它的,否则在这儿把几十种可能都列出来也没必要。
      

  8.   

    用 show variables看了,是一样的,create table也是一样的,用gbk,郁闷中~~
      

  9.   

    贴出来看一下呢?包括 show procedure status like ...
      

  10.   

    | character_set_client            | latin1                                |
    | character_set_connection        | latin1                                |
    | character_set_database          | gbk                                   |
    | character_set_filesystem        | binary                                |
    | character_set_results           | latin1                                |
    | character_set_server            | gbk                                   |
    | character_set_system            | utf8                                  |
    | character_sets_dir              | D:\MySQLServer5.0\share\charsets\     |