一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - Mysql中文亂碼問題的最佳解決方法

Mysql中文亂碼問題的最佳解決方法

2020-04-08 16:53shichen2014 Mysql

這篇文章主要介紹了Mysql中文亂碼問題的最佳解決方法,需要的朋友可以參考下

一般來說,造成MySQL出現(xiàn)中文亂碼的因素主要有下列幾點(diǎn):

1.server本身字符集設(shè)定的問題,例如還停留在latin1
2.table的語系設(shè)定問題(包含character與collation)
3.客戶端程序(例如php)的連線語系設(shè)定問題

對此,強(qiáng)烈建議使用utf8編碼!因?yàn)閡tf8可以兼容世界上所有字符!

一、避免創(chuàng)建數(shù)據(jù)庫及表出現(xiàn)中文亂碼和查看編碼方法

1、創(chuàng)建數(shù)據(jù)庫的時(shí)候:

?
1
2
3
CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';

2、建表的時(shí)候

?
1
2
3
4
CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

這3個(gè)設(shè)置好了,基本就不會(huì)出問題了,即建庫和建表時(shí)都使用相同的編碼格式。
但是如果你已經(jīng)建了庫和表可以通過以下方式進(jìn)行查詢。

1.查看默認(rèn)的編碼格式:

?
1
2
3
4
5
6
7
8
9
10
11
12
mysql> show variables like "%char%";
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------------+

注:以前2個(gè)來確定,可以使用set names utf8,set names gbk設(shè)置默認(rèn)的編碼格式;

執(zhí)行SET NAMES utf8的效果等同于同時(shí)設(shè)定如下:

?
1
2
3
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

2.查看test數(shù)據(jù)庫的編碼格式:

?
1
2
3
4
5
6
mysql> show create database test;
+------------+------------------------------------------------------------------------------------------------+
| Database | Create Database |
+------------+------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+------------+------------------------------------------------------------------------------------------------+

3.查看yjdb數(shù)據(jù)庫的編碼格式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> show create table yjdb;
| yjdb | CREATE TABLE `yjdb` (
`sn` int(5) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`brc` varchar(6) NOT NULL,
`teller` int(6) NOT NULL,
`telname` varchar(10) NOT NULL,
`date` int(10) NOT NULL,
`count` int(6) NOT NULL,
`back` int(10) NOT NULL,
PRIMARY KEY (`sn`),
UNIQUE KEY `sn` (`sn`),
UNIQUE KEY `sn_2` (`sn`)
) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

二、避免導(dǎo)入數(shù)據(jù)有中文亂碼的問題

1.將數(shù)據(jù)編碼格式保存為utf-8
設(shè)置默認(rèn)編碼為utf8:

?
1
set names utf8;

設(shè)置數(shù)據(jù)庫db_name默認(rèn)為utf8:

?
1
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

設(shè)置表tb_name默認(rèn)編碼為utf8:

?
1
ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

導(dǎo)入:

?
1
LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;

2.將數(shù)據(jù)編碼格式保存為ansi(即GBK或GB2312)
設(shè)置默認(rèn)編碼為gbk:

?
1
set names gbk;

設(shè)置數(shù)據(jù)庫db_name默認(rèn)編碼為gbk:

?
1
ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

設(shè)置表tb_name默認(rèn)編碼為gbk:

?
1
ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

導(dǎo)入:

?
1
LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;

注:
(1)UTF8不要導(dǎo)入gbk,gbk不要導(dǎo)入U(xiǎn)TF8;
(2)dos下不支持UTF8的顯示;

三、解決網(wǎng)頁中亂碼的問題
 
將網(wǎng)站編碼設(shè)為 utf-8,這樣可以兼容世界上所有字符
如果網(wǎng)站已經(jīng)運(yùn)作了好久,已有很多舊數(shù)據(jù),不能再更改簡體中文的設(shè)定,那么建議將頁面的編碼設(shè)為 GBK, GBK與GB2312的區(qū)別就在于:GBK能比GB2312顯示更多的字符,要顯示簡體碼的繁體字,就只能用GBK。

1.編輯/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;
2.在編寫Connection URL時(shí),加上?useUnicode=true&characterEncoding=utf-8參;
3.在網(wǎng)頁代碼中加上一個(gè)"set names utf8"或者"set names gbk"的指令,告訴MySQL連線內(nèi)容都要使用
utf8或者gbk;

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 9久热这里只有精品免费 | 国产国拍亚洲精品av | 国产99久久九九精品免费 | 国产成人高清精品免费观看 | 亚洲国产区男人本色在线观看欧美 | 性啪啪chinese东北女人 | 午夜影院一区二区三区 | 91大神在线精品视频一区 | 国产精品毛片高清在线完整版 | 亚洲国产成人久久午夜 | 欧美在线一 | 香蕉97超级碰碰碰免费公 | 操女人的b| 色五夜婷婷| 91久久福利国产成人精品 | 麻豆视频免费在线播放 | chinese男同志videos | 99视频久久精品久久 | 国产欧美va欧美va香蕉在线观 | 毛片小视频 | 韩国三级在线 | 精品亚洲永久免费精品 | 国产成人精品免费视频大全五级 | 草草国产成人免费视频 | 星空无限传媒xk8046 | 动漫美女人物被黄漫小说 | 99热久久这里只有精品23 | 51精品 | 日韩欧美一区黑人vs日本人 | 日韩成人在线免费视频 | 香港论理午夜电影网 | 久久精品人人做人人爽97 | 四虎成人永久地址 | 天天色踪合 | 丰满大屁股美女一级毛片 | 狠狠色狠狠色综合婷婷tag | 911爱豆传媒国产 | 国产精品激情综合久久 | 丁香六月色 | 四虎在线免费 | 农村老妇1乱69系列小说 |