前言

数据库里面,部分数据表和数据是latin1的,部分数据表和数据是UTF8,还有部分表,表结构是utf8而数据是latin1。

这种奇葩情况,工作了十几年的我,还是第一次碰到。下面说一下,怎么样字符集统一成utf8

1,建一个空数据库

2,把表结构和数据是utf8的表导出,然后直接导入到新的数据库中

3,数据表和数据都是latin1的表,先导出表结构和数据,加上--default-character-set=latin1,将导出文件中,latin1改为utf8,在导入到新的数据库中。

4,表结构是utf8,表数据是latin1的,有二种方法:

4.1,先导出表结构,导入到新的数据库中。导出数据,加上--default-character-set=utf8,因为表结构是utf8,表数据是latin1,入库时已乱码。在将数据导入到新库中。这种方案有缺点,--default-character-set=utf8,导出的数据可能会有丢失,导出的数据,在导入时可能会报错。

4.2,可以通过binary字符集做中转,推荐这种方法

UPDATE user SET user_name = CONVERT(CONVERT(CONVERT(user_name USING latin1) USING binary) USING UTF8); 

数据库设计这块非常重要,在设计数据库时一定要考虑清楚。地基不牢,大厦迟早会倒的。

更多相关文章

  1. Android利用已有控件实现自定义控件
  2. eclipse导入已有的android工程出错
  3. Android如何导入已有的外部数据库
  4. 关于android使用已有id,自己的id和系统id
  5. 【Android动态布局】之【使用addView方法时,如何保持已有动态控件
  6. 已有项目导入他人创建的flutter项目(android studio)
  7. 在已有的Android工程中接入ReactNative
  8. PHP:字符串系统函数,ASCII字符集转换,url解析函数,字符串散列处
  9. BAT 必问的 MySQL 面试题你都会吗?

随机推荐

  1. 【引用】Android(安卓)CTS 测试常见问题
  2. GitHub 优秀的 Android(安卓)开源项目
  3. Android Studio 2.0和Android Studio 2.1
  4. Android TextView背景色、圆角、内部填充
  5. android实例
  6. android 如何给图片添加水印
  7. android View的三个构造方法 简单总结
  8. android studio最新sdk更新方法
  9. Android Application - No window title,
  10. android剪切合并MP3音乐