MYSQL字符集的選擇

2021-06-27 05:02:59 字數 1885 閱讀 9592

字元(character)是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。字符集(character set)是多個字元的集合,字符集種類較多,每個字符集包含的字元個數不同,常見字符集名稱:ascii字符集、gb2312字符集、big5字符集、 gb18030字符集、unicode字符集等。計算機要準確的處理各種字符集文字,需要進行字元編碼,以便計算機能夠識別和儲存各種文字。

ascii字符集用8個bit標誌所有用於顯示的字元,字元、數字等,不包括漢字,表示單位元組字元。

gb2312字符集用雙位元組標誌 漢字編碼。

unicode字符集則是一種通用的字符集,標誌所有的字元,它是變長的。包括utf-8,utf-16等。

1.  utf-8 編碼  

utf-8是unicode的其中乙個使用方式。 utf是 unicode translation format,即把unicode轉做某種格式的意思。

utf-8便於不同的計算機之間使用網路傳輸不同語言和編碼的文字,使得雙位元組的unicode能夠在現存的處理單位元組的系統上正確傳輸。

utf-8使用可變長度位元組來儲存 unicode字元,例如ascii字母繼續使用1位元組儲存,重音文字、希臘字母或西里爾字母等使用2位元組來儲存,而常用的漢字就要使用3字   節。輔助平面字元則使用4位元組。

2.   資料庫字符集盡量使用utf8(html頁面對應的是utf-8),以使你的資料能很順利的實現遷移,因為utf8字符集是目前最適合於實現多種不同字符集之間的轉換的字符集,儘管你在命令列工具上可能無法正確檢視資料庫中的內容,我依然強烈建議使用utf8作為預設字符集.

1)建立資料庫表

mysql>create database if not exists my_db default charset utf8 collate utf8_general_ci;

#注意後面這句話 "collate utf8_general_ci",大致意思是在排序時根據utf8校驗集來排序

#那麼在這個資料庫下建立的所有資料表的預設字符集都會是utf8

**建立

mysql>create table my_table (name varchar(20) not null default '')default charset utf8;

#這句話就是建立乙個表了,制定預設字符集為utf8

2)寫資料

先要執行sql mysql_query("set names utf8;");

它的作用是設定本次資料庫聯接過程中,資料傳輸的預設字符集

然後做 字元轉換 具體轉換函式在另一篇文章裡

3.  老資料庫公升級

附1:舊資料公升級辦法

以原來的字符集為latin1為例,公升級成為utf8的字符集。原來的表: old_table (default charset=latin1),新錶:new_table(default charset=utf8)。

第一步:匯出舊資料

mysqldump --default-character-set=latin1 -hlocalhost -uroot -b my_db --tables old_table > old.sql

第二步:轉換編碼(類似unix/linux環境下)

iconv -t utf-8 -f gb2312 -c old.sql > new.sql

或者可以去掉 -f 引數,讓iconv自動判斷原來的字符集

iconv -t utf-8 -c old.sql > new.sql

在這裡,假定原來的資料預設是gb2312編碼。

第三步:匯入

修改old.sql,在插入/更新語句開始之前,增加一條sql語句:

"set names utf8;"
,儲存。

mysql -hlocalhost -uroot my_db < new.sql

大功告成!!

mysql字符集 MySQL字符集選擇

一 怎樣選擇合適的字符集 對mysql資料庫來說,字符集很重要,因為資料庫儲存的資料大部分都是各種文字,字符集對資料庫的儲存,處理效能都會有所影響。主要考慮一下幾方面的因素 1.滿足應用支援語言的需求,應用處理各種各樣的文字,發布到使用不同語言的國家或地區,可以選擇unicode字符集,mysql的...

字符集的選擇

字符集的選擇 一 背景介紹 dicom特定字符集 0008,0005 此標籤獲得不同的值就代表使用不同的語言進行解碼。以下為多家ct廠商的 0008,0005 取值 字符集 unicode是字符集,ascii gb2312 gbk gb18030既是字符集也是編碼方式,utf 8只是編碼方式。二 中...

mysql 集群字符集 Mysql 字符集

字符集與字元比較 字符集字符集是某種字元的集合,比如最常見的ascii碼,由127個字元組成,只需要乙個位元組就能表示 我們常說的字符集還是gbk iso utf8 mysql 我們使用得最多的字符集就是gbk 和 utf8了 他們都是變長字符集,如果字元在ascii範圍內就使用乙個位元組表示,其他...