mysql中文乱码问题

一、问题初现(可直接跳过查看解决方法):


  1. 历史遗留:为什么说是历史问题呢,这就要从mysql的产生说起了,在此引用wiki中mysql条目:

MySQL(官方发音为英语发音:/maɪ ˌɛskjuːˈɛl/“My S-Q-L”[1],但也经常读作英语发音:/maɪ ˈsiːkwəl/“My Sequel”)原本是一个开放源码的关联式资料库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。参照维基百科


得出结论:
1. 默认字符集
运行命令: ‘show varables like ‘%char%”;
可以得出初始默认字符集 并非UTF8 而是latin1,
2. 地域的标识:
默认为latin,原因自然不容分说,创造者总值得纪念, character_set_databasecharacter_set_server其实最主要的也就是这两个作用下导致的错误;


二、不完全解决(临时解决)
所谓不完全解决就是在当前的环境下,我们可以通过设置来控制默认的字符集:
set character_set_database='utf8';
set character_set_server  ='utf8';
show variables like 'character_set%';
这时候问题暂时解决,创建数据库还是表都默认为utf8;但是也是短暂的,下次打开命令行神奇的是默认字符集还是latin1;这时候就要完全解决了。
三、完全解决(彻底,推荐使用)
  1. 原理:要完全解决自然要追踪到源头,我们发现是配置文件在捣鬼,那我们就编辑配置文件my.ini;
  2. 步骤:

    • 找到[client]下面添加 default-character-set=utf8
    • 找到[mysqld]下面添加default-character-set=utf8
      可能会启动失败,那么久换成character_set_server=utf8去设置

    问题完美解决,可通过新建数据库,数据表,查看设置默认的字符集

CREATE DATABASE `new`;
SHOW CREATE DATABASE `new`;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值