字元(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範圍內就使用乙個位元組表示,其他...