mysql-4.0.26,dz6.0.0论坛。
执行:UPDATE cdb_posts SET message=REPLACE(message, '!', '!【某网】');
对此memo字段操作后,中文出现部分乱码,如“疽矫劳勘”等。并且有些空格和换行也被识别成了“!”,被替换掉。
replace函数不是多字节安全的吗?请问这是怎么回事?谢谢!

解决方案 »

  1.   

    多字节安全,检查MEMO的字段、表、数据库的字符集设置是否一致
      

  2.   

    简单的方法是用SQLYOG等等图形化工具查看
      

  3.   

    我现在用的是sql-front,没找到在哪里查看。请教,谢谢!
      

  4.   

    在SQLYOG中可以点右键->属性中察看,没有用过sql-front
      

  5.   

    装了个SQLyog7.1,属性里面还是没找到,能否说得详细一些,谢谢了。
      

  6.   

    选中表->ALTER TABLE->检查CHARSET
      

  7.   

    测试了一下,可以设置CHARSET为UTF8、GBK等等
      

  8.   

    表->ALTER TABLE->选中字段->charset
    最好是重新新建一个表,设置好字符集后,INSERT INTO,再试试REPLACE
      

  9.   

    不管原表还是新建一个空表,charset都是disable的啊
      

  10.   

    你用SHOW CHARACTER SET;
    看看结果
      

  11.   

    那是否mysql版本过低导致replace的支持不好呢?
    我这里的数据很多很重要,暂时不方便升级啊。
      

  12.   

    4.0根本没有CHARSET的概念!!!!!!!!set names latin1;
    然后试试,不行就升级吧。