没有办法,只能先把latin表导出后换字符集后再导入。

解决方案 »

  1.   

    导出数据再同一编码。那导出的文件有一部分已经是乱码了啊。比如:你按照UTF8导出数据,latin1的那部分数据在文件中就是乱码了吧。再次重建数据库导出,还是一样的把。
      

  2.   

    我总结哈。
    乱码数据的来源:
    乱码数据的出现是由于在插入数据库时没有指定编码集,使用了默认的Latin1造成的(正常情况是需要指定为utf8的)。
    问题的主要目的:
    如何将数据库中已经是乱码的数据恢复成正常编码数据的问题。
    目前的现状:
    数据库表中存在的数据由两部分组成,一部分是正常编码(utf8)的正常数据,另外一部分是乱码数据(在utf8下)--该部分就是插入是未指定utf8编码的数据。
    因此修改数据库编码方式为Latin1时乱码数据恢复正常,而utf8数据会成乱码。
    已经尝试过的修复方式:
    A:通过UTF8编码范围来正则匹配(无效)。
    人工查找这种都知道就不提了。
      

  3.   

     MySQL would store new values in the column using latin1, and the column will contain a mix of sjis and latin1 values and cannot be converted properly.
    官方有这么一句话,无解啊