當前位置:首頁 » 操作系統 » 資料庫編碼規則

資料庫編碼規則

發布時間: 2025-06-11 12:37:46

⑴ mysql新建的資料庫默認是什麼編碼

mysql 創建 資料庫時指定編碼很重要,很多開發者都使用了默認編碼,但是我使用的經驗來看,制定資料庫的編碼可以很大程度上避免倒入導出帶來的亂碼問題。

我們遵循的標準是,資料庫,表,欄位和頁面或文本的編碼要統一起來
很多mysql資料庫工具(除了phpmyadmin)都不支持創建時指定資料庫編碼,可以改my.ini來解決這個問題,但是需要重新啟動mysql,不過用下面的語句會更有效
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
注意:如果不是通過my.ini配置文件設置的內容,只在當前狀態下有效,當重啟資料庫服務後失效。所以如果想要不出現亂碼只有修改my.ini文件,資料庫編碼可以在創建資料庫時候指定UTF8,如下:
|character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8

⑵ 資料庫中1-1000之間字元編碼是多少

一位數1個,兩位數的話十位有10個1,個位有9個1,三位數百位有100個1,十位有90個1,個位有90個1,再加上1個四位數,一共是1+10+9+100+90+90+1=301個1。

ASCII碼中,一個英文字母(不分大小寫)佔一個位元組的空間,一個中文漢字占兩個位元組的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數,換算為十進制。最小值0,最大值255。

字元編碼

也稱字集碼,是把字元集中的字元編碼為指定集合中某一對象(例如:比特模式、自然數序列、8位組或者電脈沖),以便文本在計算機中存儲和通過通信網路的傳遞。常見的例子包括將拉丁字母表編碼成摩斯電碼和ASCII。其中,ASCII將字母、數字和其它符號編號,並用7比特的二進制來表示這個整數。通常會額外使用一個擴充的比特,以便於以1個位元組的方式存儲。

⑶ UTF8與GBK資料庫字元集

現有資料庫A與資料庫B,資料庫A服務端由GBK編碼,資料庫B服務端由UTF8編碼,需完成資料庫A至資料庫B的數據導入。測試中發現A庫數據在插入B資料庫時,部分數據查詢時存在編碼轉換報錯。影響字元編碼的幾個要素如下:

首先闡述影響字元編碼的幾個要素:Terminal-encoding、Client-encoding與Database-encoding。Terminal-encoding負責將一個字元串映射成字元編碼,如'鎵'在GBK解析為0xE689,在UTF8解析為0xE98EB5。Client-encoding是資料庫識別編碼格式的參考,資料庫中二進制編碼的原本格式由Client-encoding標識。Database-encoding是資料庫伺服器編碼,對資料庫B來說是UTF8模式,不支持GBK格式。資料庫在處理非UTF8編碼時,會轉義成UTF8編碼入庫;讀出時,如果client_encoding不是UTF8,會轉義成其他二進制編碼。

具體場景如下:

場景a:終端字元集為GBK,資料庫client_encoding為GBK,database_encoding為UTF8。鎵弿被還原出正確原編碼,但因轉義錯誤導致轉義失敗。

場景b:終端字元集為UTF8,資料庫client_encoding為UTF8,database_encoding為UTF8。鎵弿被正確還原並入庫,按照UTF8讀取可以得到原字元,但按照GBK讀取時失敗。

場景c:終端字元集為GBK,資料庫client_encoding為UTF8,database_encoding為UTF8。鎵弿被正確還原並入庫,無論按照UTF8或GBK讀取均可讀出正確字元串。

問題原因在於A庫中的GBK范圍大於B庫中設置的GBK,A庫所謂「GBK」實際上為GB18030編碼集。編碼背景資料如下:

GB2312、GBK與GB18030是中國國家標准簡體中文字元集,GB2312通行於中國大陸,GBK包含GB2312全部漢字、非漢字元號及BIG5全部漢字,GB18030包含所有漢字、部首、符號,且兼容GB2312及GBK,收錄漢字70244個。

解決方法是在導入與導出數據時,如果A庫為「GBK」或類「GBK」字元集傳輸或存儲數據,B庫需設置客戶端字元集為「GB18030」。

熱點內容
mmpose如何配置 發布:2025-06-12 04:18:36 瀏覽:457
雲存儲種類 發布:2025-06-12 03:39:58 瀏覽:539
第五人格一個杯子里最多有多少密碼機 發布:2025-06-12 03:35:45 瀏覽:551
日本dns地址和伺服器ip 發布:2025-06-12 03:24:38 瀏覽:515
線切割hf用的加密狗 發布:2025-06-12 03:12:53 瀏覽:300
為什麼蘋果qq和安卓版本不一樣 發布:2025-06-12 02:24:24 瀏覽:820
wap商城源碼 發布:2025-06-12 01:50:18 瀏覽:1017
腳本的殼 發布:2025-06-12 01:16:15 瀏覽:51
sql植入 發布:2025-06-12 01:05:04 瀏覽:699
安卓11系統彩蛋有什麼用 發布:2025-06-12 01:04:04 瀏覽:389