您好,登錄后才能下訂單哦!
下文內容主要給大家帶來MySQL的數據庫亂碼原因分析,這里所講到的知識,與書籍略有不同,都是億速云專業技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。
MySQL數據庫亂碼的原因
在計算機中任何數據都是以二進制存儲的,要存儲一個字符就要對它進行編碼,用一個二進制與其對應,這種對應的規則就是字符的編碼。編碼的規則有很多種,一種規則所編碼的“字符”的集合就叫做“字符集”。在制定編碼標準的時候,“字符的集合”和“編碼”一般都是同時制定的,因此,平時我們所說的“字符集”,例如GB2312,GBK和UTF-8等,除了有“字符的集合”這層含義外,同時也包含了“編碼”的含義。
對中文處理可以使用GB2312和GBK,它是中文字符集,而UTF-8是對世界上每個國家和地區的文字之地制定的字符集,并且UTF-8是可變存儲長度的字符集,如英文字母只需要一個字節存儲,節省了存儲空間,所以數據庫中通常采用UTF-8的字符集。
云服務器系統字符設置問題
數據表語系設置的問題
客戶端連接語系的問題
解決方法
在創建數據庫時通過CHARACTER SET 字符集與COLLATE 'utf8_general_ci' 設定
在創建表時通過DEFAULT CHARSET = 字符集 設定
可使用SET NAMES 字符集設置默認的字符集
修改配置文件,在[mysql]段中加入default_character_set=字符集
⑴在創建數據庫時設定字符集
CREATE DATABASE chartest CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
⑵在創建表時設定字符集
CREATE TABLE 'charatertest' (id varhsar(40)) DEFAULT CHARSET =utf8
⑶使用SET NAMES 是指默認的字符集
SET NAMES utf8
⑷修改配置文件,在[mysql]段中加入
default_character_set=utf8
舉例:
⑴創建數據庫、表、全局數據庫設置
[root@localhost ~]# mysql -u root -p123
mysql> create database mydb default character set utf8 collate utf8_general_ci;
mysql> use mydb
mysql> create table mydb_table (username varchar(64) NOT NULL ) default charset=utf8;
mysql> set names utf8;#給整個數據庫設置默認字符集
⑵修改配置文件
[root@localhost ~]# vim /etc/my.cnf
[mysql]后面加入
default_character_set=utf8
對于以上關于MySQL的數據庫亂碼原因分析,如果大家還有更多需要了解的可以持續關注我們億速云的行業推新,如需獲取專業解答,可在官網聯系售前售后的,希望該文章可給大家帶來一定的知識更新。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。