设为首页 收藏本站
查看: 1987|回复: 0

[经验分享] Mysql (三)Mysql 编码问题

[复制链接]

尚未签到

发表于 2018-9-30 08:52:24 | 显示全部楼层 |阅读模式
  处理mysql 编码问题
  
  我们经常会遇到一些向MySQL数据库中插入中文,但是select出来的时候,却是乱码。
  
  、查看库、表字符集命令
  1.查看数据库支持的所有字符集
  Show  character set (show char set)
DSC0000.png

  
  2.查看当前状态,里面当然包括字符集的设置
  Status /s
DSC0001.png

  
  
  
  3.查看系统字符集设置,包括所有的字符集设置
  Show  variables like  ‘%char%’;
DSC0002.png

DSC0003.png

  4.查看数据表中字符集设置
  Show  full columns  from  tablename ;
DSC0004.jpg

  也可以查看表结构
  Show  create table  tablename\G;
DSC0005.png

  5.查看数据库编码(数据库结构)
  Show  create database  dbname;//创建数据库指定的字符集
DSC0006.png

  
  二、创建库表列时要指定字符集(要统一)
  1服务器级
  在安装MySQL时可以设置服务器的默认编码格式,也可对my.ini做修改,修改[mysqld]里面的character_set_server=utf8,则可设置character_set_server的值。
  2.数据库级
  Create  database   dbname default  character  set utf8;
DSC0007.png

  注意,如果不指定默认的字符集,则系统会根据character_set_database的值进行设置
  3.表级
  Create  table dbname.tbname(id varchar(20) not null, name vharchar(20))engine=innoDB  default  
DSC0008.jpg

  :定义表的默认字符集为utf8,即使character_set_database为gbk,但是表的列都为utf8。如果没有定义表的默认字符集,则他会按照character_set_database的值来设置
  
  4.列级
  Create  table db1.tb2(id  varchar(20)  not null, name  varchar(20)  character set utf8);
DSC0009.png

  注:如查没有指定列字符集、就使用表字符集、如查指定了就使用指定的。
  图中:show  create table db1.tb2//是查看表结构
  
  三、修改字符集
  1.修改character_set_connectioncharacter_set_clientcharacter_set_results三值
  对于一个连接来说、可以用
  Set names  utf8来使用上面三个值改成utf8;
DSC00010.png

  Set name  ‘charset_name’; 相当于
  Set character_set_client = charset_name;
  SET character_set_results = charset_name;
  SET character_set_connection = charset_name;
  
  2.修改character_set_database字段(也就是改数据库字符集)
  Alter  database db_name  default  character set  charset_name;
  
DSC00011.png

  
  3.修改character_set_server字段
  最简单的方法是直接改my.ini配置文件里面[mysqld]的字段,增加character-set-server=gbk,然后重启mysqld,则可改为你想要的字符集。
  
  4.修改表的字符集
  Alter  table tbname  default  character set  charsetname;
  Alter  table tb1  default  character set  utf8
  
  5.修改列的字符集
  Alter  table tbname  modify  age varchar(30)  character  set utf8;
  
  总结:
  1、建库、建表、建字段设置统一编码。
  2、PHP作为mysqle服务器客户端、连接编码set names utf8/gbk;
  3、设置php返回给浏览器数据的编码。(Content-Type,header(),
  
  header("Content-type:text/html;charset=utf-8");
  4、Php文件本身保存的编码(文件编码、通过文本编辑器设置)
  5、安装mysql时设置好编码。(装好后可修改my.ini
  
  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-606521-1-1.html 上篇帖子: MySQL基础语句 下篇帖子: centos Apache、php、mysql默认安装路径
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表