Mysql (三)Mysql 编码问题
admin
2023-05-16 02:22:05
0

处理mysql 编码问题

 

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

 

、查看库、表字符集命令

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

Show  character set (show char set)

Mysql (三)Mysql 编码问题

 

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

Status /s

Mysql (三)Mysql 编码问题

 

 

 

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

Show  variables like  ‘%char%’;

Mysql (三)Mysql 编码问题

Mysql (三)Mysql 编码问题


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

Show  full columns  from  tablename ;

Mysql (三)Mysql 编码问题

也可以查看表结构

Show  create table  tablename\G;

Mysql (三)Mysql 编码问题

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

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

Mysql (三)Mysql 编码问题

 

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

1服务器级

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

2.数据库级

Create  database   dbname default  character  set utf8;

Mysql (三)Mysql 编码问题

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

3.表级

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

Mysql (三)Mysql 编码问题

:定义表的默认字符集为utf8,即使character_set_databasegbk,但是表的列都为utf8。如果没有定义表的默认字符集,则他会按照character_set_database的值来设置

 

4.列级

Create  table db1.tb2(id  varchar(20)  not null, name  varchar(20)  character set utf8);

Mysql (三)Mysql 编码问题

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

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

 

三、修改字符集

1.修改character_set_connectioncharacter_set_clientcharacter_set_results三值

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

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

Mysql (三)Mysql 编码问题

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;

 

Mysql (三)Mysql 编码问题

 

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(),

<meta http-equiv="Content-Type"content="text/html; charset=gb2312" />

header("Content-type:text/html;charset=utf-8");

4、Php文件本身保存的编码(文件编码、通过文本编辑器设置)

5、安装mysql时设置好编码。(装好后可修改my.ini

 

 

微信扫一扫 、关注公众号

   不定时分享资料视频

Mysql (三)Mysql 编码问题

相关内容

热门资讯

墙面开裂先补还是先刷腻子粉 先补,因为墙固就相当于平时使用的界面剂,作用是增加与腻子的咬合力,从而避免出现空鼓现象。可以在完成墙...
特大暴雨、雷暴大风!超强台风“... 据中央气象台消息,今天(8月2日)上午8点钟超强台风“白海豚”的中心位于琉球群岛那霸市偏东方向,大约...
甘肃渭源县山洪致25死,国家防... 2026年7月26日,甘肃省定西市渭源县会川镇罗家磨村双石门沟区域突发短时强降雨,引发山洪灾害,目前...
江苏省人工智能产业联盟在南京成... 会议现场。人民网 江楠摄 人民网南京7月31日电 (江楠)30日,江苏省人工智能产业联盟成立暨202...
曝B站林航已离职 暂未关联业务... 【CNMO科技消息】7月31日,据《读佳》报道,B站林航已于今日通过个人朋友圈官宣离职,目前其下一站...
AI 产业观察・烟台│国工智能... 作为烟台人工智能领军企业,国工智能旗下自研AI智能检测装备正式落地机场“烟台制作”展厅,持续面向往来...
登山公司称10人探险队全部遇难... 澎湃新闻记者 南博一据英国媒体8月1日报道,尼泊尔著名登山家、前英国特种部队成员尼尔马尔·普尔贾(N...
蒲得宇预估苹果iPhone 1... IT之家 8 月 1 日消息,广发证券分析师蒲得宇(Jeff Pu)在最新研报中,赞同天风国际证券分...
华睿电气GFC15D矿用本安型... GFC15D矿用本安型超声波风速传感器具备三大核心功能。第一,风速精准测量功能,量程覆盖0~15m/...
光子时间晶体实现太赫兹光超快调... 据最新一期《自然》杂志报道,法国巴黎综合理工学院、法兰西公学院以及德国德累斯顿-罗森多夫亥姆霍兹中心...