溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql中怎么查看編碼

發(fā)布時(shí)間:2021-08-04 17:33:50 來(lái)源:億速云 閱讀:334 作者:Leah 欄目:數(shù)據(jù)庫(kù)

Mysql中怎么查看編碼,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

一、

查看的字符集

show variables like 'character\_set\_%';

輸出:

+--------------------------+--------+

| Variable_name            | Value  |

+--------------------------+--------+

| character_set_client     | latin1 |

| character_set_connection | latin1 |

| character_set_database   | latin1 |

| character_set_filesystem | binary |

| character_set_results    | latin1 |

| character_set_server     | latin1 |

| character_set_system     | utf8   |

+--------------------------+--------+

結(jié)合以下的編碼表我們發(fā)現(xiàn)當(dāng)前的數(shù)據(jù)庫(kù)系統(tǒng)的編碼:

latin1_bin 

西歐(多語(yǔ)言), 二進(jìn)制

binary 

二進(jìn)制

以上是我在linux環(huán)境中的查看的結(jié)果編碼集了。我現(xiàn)在WIN平臺(tái)上面查看編碼集結(jié)果如:

+--------------------------+--------+

| Variable_name            | Value  |

+--------------------------+--------+

| character_set_client     | utf8   |

| character_set_connection | utf8   |

| character_set_database   | utf8   |

| character_set_filesystem | binary |

| character_set_results    | utf8   |

| character_set_server     | utf8   |

| character_set_system     | utf8   |

+--------------------------+--------+

為什么會(huì)出現(xiàn)不一致的情況呢?在我本機(jī)上面是顯示的UTF-8.而在LINUX上面居然是

二、通過(guò)命令修改其編碼

創(chuàng)建數(shù)據(jù)庫(kù)指定數(shù)據(jù)庫(kù)的字符集

>create database mydb character set utf-8;#直接指定其編碼

直接通過(guò)命令進(jìn)行修改

set character_set_client=utf8;

set character_set_connection=utf8;

set character_set_database=utf8;

set character_set_results=utf8;

set character_set_server=utf8;

修改完了之后再查詢

show variables like 'character\_set\_%';

+--------------------------+--------+

| Variable_name            | Value  |

+--------------------------+--------+

| character_set_client     | utf8   |

| character_set_connection | utf8   |

| character_set_database   | utf8   |

| character_set_filesystem | binary |

| character_set_results    | utf8   |

| character_set_server     | utf8   |

| character_set_system     | utf8   |

+--------------------------+--------+

結(jié)果全部都調(diào)整修改成UTF-8了!

修改完了之后我看select * from address_address; 出現(xiàn)亂碼了!Django也亂碼

三、解決數(shù)據(jù)導(dǎo)入導(dǎo)出的亂碼問(wèn)題

#create database nginxdjango;

# use nginxdjango;

# show variables like 'character\_set\_%';

#打印輸出居然是如下

+--------------------------+--------+

| Variable_name            | Value  |

+--------------------------+--------+

| character_set_client     | latin1 |

| character_set_connection | latin1 |

| character_set_database   | latin1 |

| character_set_filesystem | binary |

| character_set_results    | latin1 |

| character_set_server     | latin1 |

| character_set_system     | utf8   |

+--------------------------+--------+

依舊是latin編碼的。

OK。我將其編碼設(shè)置一下

set character_set_client=utf8;

set character_set_connection=utf8;

set character_set_database=utf8;

set character_set_results=utf8;

set character_set_server=utf8;

再查詢一下其編碼格式為:+--------------------------+--------+

| Variable_name            | Value  |

+--------------------------+--------+

| character_set_client     | utf8   |

| character_set_connection | utf8   |

| character_set_database   | utf8   |

| character_set_filesystem | binary |

| character_set_results    | utf8   |

| character_set_server     | utf8   |

| character_set_system     | utf8   |

+--------------------------+--------+

現(xiàn)在將數(shù)據(jù)導(dǎo)進(jìn)來(lái)

source /python/django/sql/nginxdjango.sql;

其中的nginxdjango.sql 其編碼也是utf-8 格式的!

導(dǎo)進(jìn)來(lái) 數(shù)據(jù)庫(kù)查看居然還是亂碼不過(guò)程序跑起來(lái)是正常了!

MySQL字符集編碼的類(lèi)型種類(lèi)

gb2312_chinese_ci和gbk_chinese_ci以及gb2312_bin,gbk_bin的區(qū)別

gb2312_chinese_CI : 只支持簡(jiǎn)體中文

gb2312_BIN   :而gb2312_bin可以說(shuō)是gb2312_chinese_ci的一個(gè)子集,

而且gb2312_BIN是二進(jìn)制存儲(chǔ).區(qū)分大小寫(xiě)數(shù)據(jù)庫(kù)編碼格式就意義不一樣了

gbk_chinese_CI   支持簡(jiǎn)體中文和繁體

gbk_bin   解釋同gb2312_BIN     對(duì)應(yīng)gbk_chinese_CI

PS:GBK包括了簡(jiǎn)體與繁體兩種類(lèi)型

 新篇:2010-03-09

MySQL中默認(rèn)字符集的設(shè)置有四級(jí):服務(wù)器級(jí),數(shù)據(jù)庫(kù)級(jí),表級(jí) 。最終是字段級(jí) 的字符集設(shè)置。注意前三種均為默認(rèn)設(shè)置,并不代碼你的字段最終會(huì)使用這個(gè)字符集設(shè)置。所以我們建議要用show create table table ; 或show full fields from tableName; 來(lái)檢查當(dāng)前表中字段的字符集設(shè)置。

MySQL 中關(guān)于連接環(huán)境的字符集設(shè)置有  Client端,connection, results 通過(guò)這些參數(shù),MySQL就知道你的客戶端工具用的是什么字 符集,結(jié)果集應(yīng)該是什么字符集。這樣MySQL就會(huì)做必要的翻譯,一旦這些參數(shù)有誤,自然會(huì)導(dǎo)致字符串在轉(zhuǎn)輸過(guò)程中的轉(zhuǎn)換錯(cuò)誤?;旧?9%的亂碼由些造 成。

1. 數(shù)據(jù)庫(kù)表中字段的字符集設(shè)置 。show create table TableName 或show full columns from tableName

mysql> show create table t1;

mysql> show full columns from t1; 查看列的編碼類(lèi)型

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

show create database test;

輸出:CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */

2. 當(dāng)前聯(lián)接系統(tǒng)參數(shù)  show variables like 'char%'

mysql> show variables like 'char%';

1. 中文,請(qǐng)確保 表中該字段的字符集為中文兼容:

 big5     | Big5 Traditional Chinese

 gb2312   | GB2312 Simplified Chinese

 gbk      | GBK Simplified Chinese

 utf8     | UTF-8 Unicode

[其它補(bǔ)充]

修改數(shù)據(jù)庫(kù)的字符集

   mysql>use mydb

   mysql>alter database mydb character set utf-8;

創(chuàng)建數(shù)據(jù)庫(kù)指定數(shù)據(jù)庫(kù)的字符集

   mysql>create database mydb character set utf-8;

2010-05-02 新添加進(jìn)來(lái)

show variables like 'character\_set\_%'; 所查看到了幾項(xiàng)中其中有這三項(xiàng)是受客戶端影響

character_set_client

character_set_connection

character_set_results     

看完上述內(nèi)容,你們掌握Mysql中怎么查看編碼的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI