很多年以前遇到 mysql 的乱码问题。最近又遇到了。

mysql 这货,默认的编码是 latin1 (例如 latin1_swedish_ci)。——实在不明白为什么是这样。

而最近10年,主流的编码方式已经是 utf8 。mysql 中,最初采用 utf8_generalci 与其匹配,后来逐渐地使用 utf8unicode_ci 与其匹配。

比较神奇的是,有时候,mysql 数据库已经从 latin1 转成了 utf8 ,但是,phpmyadmin 中,显示出来的是乱码,而程序中现出来的却是正常的。——因此,如果不看数据库,也许不知道 mysql 层面保存的数据已经乱成一团。

但是,如果后期需要转移数据、或者恢复数据,就很可能发现了这些乱码,并且发现程序读取之后的字符也是乱码了。

今晚找到半天,终于在 煩人的latin1轉utf-8問題 找到了解决办法。

这个解决办法的主要思路就是:既然原来的数据是 latin1 格式的,那么,备份时就先按照 latin1 格式去把数据弄出来:

mysqldump -c -h localhost --user 用户名--password=用户密码 --default-character-set=latin1 --skip-set-charset 数据库名|bzip2 > mysql-backup-`date +%Y%m%d`.bz2

将这个压缩包里面的文件另存为 utf8 格式的 sql 文件之后,在顶部增加这一行:

SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary;

然后,重新导入即可。

ghost中文网在 在阿里云服务器上安装 Ghost (3)-- 安装 MySQL 提到如何设置 mysql 的默认字符集,如下:

1、编辑 /etc/mysql/my.cnf

nano -w /etc/mysql/my.cnf

2、找到 [mysqld] 这一段,增加以下 3 行; ——如果没有 [mysqld] 这一行,就先新增这行

collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8

重新启动 mysql 之后,就能避免 mysql 采用奇葩的 latin1 字符集了。

mysql 乱码 latin1_mysql 数据库 latin1 导致的乱码相关推荐

  1. mysql导出sql乱码_MySQL数据库导出SQL出现乱码解决

    环境:NavicatforMysql8.2 + MySQL Sever 5.1 问题:MySQL 数据库导出SQL出现乱码 解决: 方法一: 将数据库的编码改成UTF-8. 环境:Navicatfor ...

  2. sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?

    很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...

  3. mysql的latin1_MySQL编码latin1转utf8

    mysql移植含有中文的数据时,很容易出现乱码问题.很多是在从mysql4.x向mysql5.x移植的时候出现.mysql的缺省字符集是 latin1,在使用mysql4.x的时候,很多人都是用的la ...

  4. mysql字符集latin1_mysql的latin1字符集支持所有字符集

    1. 先来看看latin1 (参考百度百科) Latin1是ISO-8859-1的别名,有些环境下写作Latin-1. ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00- ...

  5. MySQL之数据库基字符集,中文乱码,大小写敏感,Packet for query is too large

    目录 1 数据库字符集选择 1.1 utf8和utfmb4区别 1.2 排序检验规则 1.2.1 COLLATE介绍 1.2.2 常见排序示例 1.2.3 创建表时使用字符集和校验规则 1.2.4 在 ...

  6. Mysql自动超时重连导致的中文乱码问题

    Mysql自动超时重连导致的中文乱码问题 今天有客户反应从自选股服务器获取的自定义板块中文名称乱码,之前一直都是正常的.看到乱码两字,头脑中首先冒出来的就是查看mysql数据库中的编码集,输入SHOW ...

  7. mysql 恢复数据库乱码了_再谈MySQL数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  8. mysql 数据库备份 乱码_再谈 MySQL 数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  9. sqlalchemy mysql 乱码_SQLAlchemyMySQL数据库乱码解决

    今天对clubot进行了升级, 但是导入数据后中文乱码, 一开是找资料说是在创建引擎的时候添加编码信息: engine = create_engine("mysql://root:@loca ...

最新文章

  1. [LeetCode]题解(python):108-Convert Sorted Array to Binary Search Tree
  2. Xamarin Essentials教程地理定位Geolocation
  3. mysql-sql优化--笔记
  4. msm8937+android7.1系统播放某个MP4文件在data分区下创建ramdump并生成很多elf文件问题
  5. MySQL 全文索引实现简单版搜索引擎
  6. 设置progressbar进度条颜色
  7. ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)
  8. 如何做到 byte[] 和 十六进制 互转?
  9. Codeforces Round #737 (Div. 2)
  10. 同方专转本计算机视频,同方2011专转本计算机
  11. 如何关闭借呗订阅开通通知_支付宝花呗借呗隐藏规则,芝麻分600以上,花呗3.6万,借呗12万!...
  12. 设定open_basedir导致PHP程序无法上传
  13. 数据绑定概述(MSDN)
  14. Emacs 配置 Python 编程环境
  15. spring视频教程下载
  16. 怎么重置计算机网络设置密码,怎么重新设置wifi密码_如何重新设置无线密码?-192路由网...
  17. BUU MISC(5_10-5_14)
  18. QT5鼠标触摸屏键盘支持
  19. linux cp 中文文件名,linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决...
  20. JD2016版首页改版前端总结(转载整理)

热门文章

  1. DCOMConnection与SocketConnection
  2. 让策划人员一键生成创意方案,这款 AI 产品是如何做到的?
  3. osg 两个面求交线
  4. Asp调用存储过程,command.CreateParameter 参数值的类型说明
  5. 哪些专业可以报考二建?2021二建报名条件专业详情对照表来了
  6. XMind Mac高阶玩法,原来XMind 还可以这么玩
  7. IPv6协议的技术分析
  8. MCADEx开发 ProE二次开发 Creo二次开发 项目配置
  9. 在Windows环境下MongoDB搭建和简单操作
  10. Java8中Stream的学习以及实际使用教程