濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決

mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決

熱門標(biāo)簽:申請(qǐng)400電話電話價(jià)格 石家莊400電話辦理公司 許昌外呼增值業(yè)務(wù)線路 地圖標(biāo)注客戶付款 新鄉(xiāng)智能外呼系統(tǒng)好處 咸陽防封電銷卡 宜賓全自動(dòng)外呼系統(tǒng)廠家 廣東400企業(yè)電話申請(qǐng)流程 臨沂做地圖標(biāo)注

前言

有的時(shí)候我們?cè)诓榭磾?shù)據(jù)庫數(shù)據(jù)時(shí),會(huì)看到亂碼。實(shí)際上,無論何種數(shù)據(jù)庫只要出現(xiàn)亂碼問題,這大多是由于數(shù)據(jù)庫字符集設(shè)定的問題。

下面我們就介紹一下,數(shù)據(jù)庫的字符集的設(shè)定及亂碼問題的解決。

mysql數(shù)據(jù)庫的字符集

直白的說,字符就像是單個(gè)的文字,編碼就像是給每個(gè)文字的編號(hào),字符集就像是字符與編碼的集合,校驗(yàn)規(guī)則就是字符集的對(duì)應(yīng)的排序規(guī)則,字符集加上對(duì)應(yīng)的校驗(yàn)規(guī)則就是語言。(每種字符集可以有多種校對(duì)規(guī)則,但都有一個(gè)默認(rèn)的校對(duì)規(guī)則)

mysql數(shù)據(jù)庫可以通過設(shè)定字符集,來使用對(duì)應(yīng)的字符集和檢驗(yàn)規(guī)則來組織字符。就像是解讀一片文章的時(shí)候用那種語言來解析。例如:中國(guó)人常使用的utf8編碼,代表的是中文。

mysql可以支持多種字符集。在同一個(gè)數(shù)據(jù)庫的不同表,同一個(gè)表中的不同字段,都可以指定使用不同的字符集。

mysql的字符集規(guī)則

mysql可以設(shè)定的字符集:

  1. 服務(wù)器的字符集
  2. 數(shù)據(jù)庫的字符集
  3. 表的字符集字
  4. 段的字符集

如果在某一個(gè)級(jí)別沒有設(shè)置字符集,則它會(huì)繼承其上一級(jí)的字符集。

mysql數(shù)據(jù)庫亂碼問題解決方法(即修改字符集方法)

【1】查看mysql支持的字符集

show character set;

【2】查看數(shù)據(jù)庫編碼

show variables like 'character_set%';

【3】查看當(dāng)前mysql使用的字符集

show variables like 'character%';

解析:

character_set_client:客戶端請(qǐng)求數(shù)據(jù)的字符集

character_set_connection:客戶機(jī)與服務(wù)器連接的字符集

character_set_database:默認(rèn)數(shù)據(jù)庫的字符集;如果沒有默認(rèn)數(shù)據(jù)庫,就會(huì)使用 character_set_server指定的字符集(建議不要隨意更改)

character_set_filesystem:把 character_set_client轉(zhuǎn)換character_set_filesystem (默認(rèn)為binary, 不做任何轉(zhuǎn)換)

character_set_results:返回給客戶端的字符集

character_set_server:數(shù)據(jù)庫服務(wù)器的默認(rèn)字符集

character_set_system:系統(tǒng)字符集,默認(rèn)utf8。(用于數(shù)據(jù)庫的表、列和存儲(chǔ)在目錄表中函數(shù)的名字)

character_sets_dir:mysql字符集文件的保存路徑

產(chǎn)生亂碼的原因

character_set_client與實(shí)際不符合
character_set_results與客戶端頁面不符合

【4】查看當(dāng)前數(shù)據(jù)庫的校對(duì)規(guī)則

show variables like 'collation%';

解析:

value的命名規(guī)則: 字符集名字+語言+后綴

collation_connection :當(dāng)前連接的字符集

collation_database :當(dāng)前日期的默認(rèn)校對(duì)

collation_server :服務(wù)器的默認(rèn)校對(duì)

后綴的含義:
ci:不區(qū)分大小寫
cs:區(qū)分大小寫
bin:二進(jìn)制排序

【5】更改字符集

解決亂碼問題(一般如下)

1>臨時(shí)(只在當(dāng)前生效,退出后重新進(jìn)入恢復(fù)原來設(shè)置)

set character_set_client = 'utf8';
set character_set_connection = 'utf8';
set character_set_results = 'utf8';

set names utf8;

2>永久(修改完配置文件,需重啟mysql)
在mysql的my.cnf的配置文件中修改或添加下列:

[client]
default-character-set = utf8 

[mysqld]
character_set_server = utf8 


[mysql]
default-character-set = utf8

備注

1>
關(guān)于mysqld下面的參數(shù),使用mysql5.5驗(yàn)證后,下方的寫法都可,并非下劃線原因?qū)е碌男薷牟怀晒Γ?/p>

character_set_server = utf8
character-set-server = utf8

2>
關(guān)于配置文件的修改,有時(shí)候由于是編譯安裝,因此mysql的配置文件,不一定是/etc/my.cnf,因此修改后也不會(huì)成功。

3>
修改完配置文件,并重啟mysql后。請(qǐng)查看一下,是否字符集和校對(duì)規(guī)則如下:

如下即為成功,如果是使用Navicat等第3方工具連接,中文仍有亂碼,修改一下工具的編碼試試

到此這篇關(guān)于mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)庫字符集亂碼問內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL查看與修改字符集的方法實(shí)例教程
  • 如何修改MySQL字符集
  • MySQL字符集utf8修改為utf8mb4的方法步驟
  • mysql如何在已有數(shù)據(jù)庫上統(tǒng)一字符集
  • MySQL字符集亂碼及解決方案分享
  • 詳解JDBC對(duì)Mysql utf8mb4字符集的處理
  • MySQL中因字段字符集不同導(dǎo)致索引不能命中的解決方法
  • MAC下修改mysql默認(rèn)字符集為utf8的方法
  • Docker下mysql設(shè)置字符集的方法
  • 關(guān)于mysql查詢字符集不匹配問題的解決方法
  • 詳解mysql中的字符集和校驗(yàn)規(guī)則

標(biāo)簽:日照 貴州 阜新 北京 鎮(zhèn)江 臺(tái)灣 鷹潭 合肥

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決》,本文關(guān)鍵詞  mysql,數(shù)據(jù)庫,中,字符集,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    淮阳县| 板桥市| 新丰县| 师宗县| 霸州市| 左云县| 青海省| 宁南县| 阳朔县| 浦东新区| 河北省| 武宣县| 延寿县| 纳雍县| 新源县| 江华| 新平| 肇东市| 东平县| 乐至县| 班戈县| 武威市| 密云县| 监利县| 利津县| 衡阳市| 固始县| 南木林县| 阿瓦提县| 彭阳县| 兰考县| 环江| 竹溪县| 舒兰市| 庆城县| 邳州市| 枣阳市| 台山市| 纳雍县| 禄丰县| 巫溪县|