mysql查看编码问题_Mysql (三)Mysql 编码问题

处理mysql编码问题

我们经常会遇到一些向MySQL数据库中插入中文,但是select出来的时候,却是乱码。

一、查看库、表字符集命令

1.查看数据库支持的所有字符集

Show  character set (show char set)

35a318063992984507eb22c7bef46d2b.png

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

Status(/s)

960de1ad832b6f39997ce5e0ad469507.png

3.查看系统字符集设置,包括所有的字符集设置

Show  variables like  ‘%char%’;

5ba569d9c12d830e7d0580c6875b9b8a.png

66948e7e57ffaa9b035ae4f6a8274199.png

4.查看数据表中字符集设置

Show  full columns  from  tablename ;

3d0624da539757acf2fb77c710ed8cf0.png

也可以查看表结构

Show  create table  tablename\G;

44911a4fce0cff25d81ae7e60229270b.png

5.查看数据库编码(数据库结构)

Show  create database  dbname;//创建数据库指定的字符集

d5c3f307a00147cca68616047e711d10.png

二、创建库表列时要指定字符集(要统一)

1、服务器级

在安装MySQL时可以设置服务器的默认编码格式,也可对my.ini做修改,修改[mysqld]里面的character_set_server=utf8,则可设置character_set_server的值。

2.数据库级

Create  database   dbname default  character  set utf8;

4221f9f1bd82115c55c951c91e092e18.png

注意,如果不指定默认的字符集,则系统会根据character_set_database的值进行设置

3.表级

Create  table dbname.tbname(id varchar(20) not null, name vharchar(20))engine=innoDB  default  charset=utf8;

a65f01c6c011ca3f251bcbdb81e179bf.png

注:定义表的默认字符集为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);

0525591868838e60ed25d6cae376adaf.png

注:如查没有指定列字符集、就使用表字符集、如查指定了就使用指定的。

图中:show  create table db1.tb2//是查看表结构

三、修改字符集

1.修改character_set_connection、character_set_client、character_set_results三值

对于一个连接来说、可以用

Set names  utf8来使用上面三个值改成utf8;

552544b8441b75decf04b208809bcd37.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;

b51b35ae09ff05bf1459f774f979e424.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)

微信扫一扫 、关注公众号

不定时分享资料视频

293380d6a51f4db0760507bd2cac7959.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值