mysql特殊编码_Mysql 字符编码
知識補充:數據庫字符編碼
一、MySQL支持的字符集
1.查看所有可用的字符集
show character set;
或者查看information_schema.character_sets,也可以顯示所有的字符集和該字符集默認的校隊規則
2.MySQL的字符集包括字符集(character)和校對規則(collation)兩個概念。
1)字符集用來定義MySQL存儲字符串的方式
2)校對規則用來定義 字符串比較的方式
3)字符集和校對規則是一對多的關系,一個字符集有多個校對規則供你選擇!
校對規則命名約定:它們以相關的字符集名開始,通常包括一個語言名,并且以
_ci(忽略大小寫)、
_cs(大小寫敏感)或者
_bin(二元,即比較是基于字符編碼的值而與language無關)結束。
查看字符集的校對規則:
show collation like '字符集前綴%';
二、MySQL內部的字符集和校對規則設置
1.服務器字符集和校對規則設置
暫時了解一下即可
2.數據庫字符集和校對規則設置
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
查看當前數據庫的字符集和校對規則:
show variables like 'character_set_database';
show variables like 'collation_database';
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
3.表字符集和校對規則設置
CREATE TABLE tbl_name (column_list)
[DEFAULT CHARACTER SET charset_name [COLLATE collation_name]]
ALTER TABLE tbl_name
[DEFAULT CHARACTER SET charset_name] [COLLATE collation_name]
4.字段(列)字符集和校對規則
遇到這種情況概率比較小,這只是MySQL提供給我們一個靈活設置的手段
三、MySQL連接字符集設置
過程中要設置正確,誠實守信,這樣子如果全部設置正常,服務器端會自動的去按照你設置的字符集轉換,但是也要避免想換轉換的過程,最好都設置成一樣的編碼!
連接字符集設置:客戶端和服務器之間交互的字符集
1.對于客戶端和服務器段的交互操作,MySQL提供了3個不同的參數:
1)character_set_client:客戶端來源數據使用的字符集
2)character_set_connection:連接層字符集
3)character_set_results:返回結果字符集
知識拓展:數據在客戶端和服務器之間交互的過程中字符集轉換的大概過程
1) MySQL Server收到請求時將請求數據從character_set_client轉換為character_set_connection;
2) 進行內部操作前將請求數據從character_set_connection轉換為內部操作字符集,內部操作字符集的確定方法如下:
1>使用每個數據字段設定的字符集;
2>若上述值不存在,則使用對應數據表設定的字符集;
3>若上述值不存在,則使用對應數據庫設定的字符集;
4>若上述值不存在,則使用服務器設定的字符集。
3) 將操作結果從內部操作字符集轉換為character_set_results。
這3個參數設定的字符集應該相同,并且客戶端使用的字符集確實是參數character_set_client的值,才可以確保用戶的數據可以正確的返回且輸出。
查看當前設置:show variables like 'character_set%';
修改:
set names 字符集,可以同時修改3個參數的值,對本次有效
也可以在配置文件中設置:
[mysql]
default-character-set=字符集
修改CMD命令行字符集:
chcp 65001 #換成utf-8代碼頁(設置為utf-8之后最好手動修改顯示字體 )
chcp 936 #換成默認的gbk
客戶端使用字符,連接層使用的字符集,內部使用的字符集,返回使用的字符集,最好都設置層一樣的,并且客戶端使用的字符集確實是character_set_client參數的值,這樣就絕對不會出現問題!
總結
以上是生活随笔為你收集整理的mysql特殊编码_Mysql 字符编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ 人脸识别_应用层下的人脸识别(四
- 下一篇: linux mysql怎么启动_linu