程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Mysql支持的字符集簡介

Mysql支持的字符集簡介

編輯:關於MYSQL數據庫
字符集是一套符號和編碼的規則,不論是在Oracle數據庫還是在MySQL數據庫,都存在字符集的選擇問題,而且如果在數據庫創建階段沒有正確選擇字符集,那麼可能在後期需要更換字符集,

 字符集概述
字符集是一套符號和編碼的規則,不論是在Oracle數據庫還是在MySQL數據庫,都存在字符集的選擇問題,而且如果在數據庫創建階段沒有正確選擇字符集,那麼可能在後期需要更換字符集,而字符集的更換是代價比較高的操作,也存在一定的風險,所以,我們推薦在應用開始階段,就按照需求正確的選擇合適的字符集,避免後期不必要的調整。
4.2 MySQL支持的字符集簡介
mysql服務器可以支持多種字符集 (可以用show character set命令查看所有MySQL支持的字符集) ,在同一台服務器、同一個數據庫、甚至同一個表的不同字段都可以指定使用不同的字符集,相比Oracle等其他數據庫管理系統,在同一個數據庫只能使用相同的字符集,MySQL明顯存在更大的靈活性。
mysql的字符集包括字符集(CHARACTER)和校對規則(COLLATION)兩個概念。字符集是用來定義mysql存儲字符串的方式,校對規則則是定義了比較字符串的方式。字符集和校對規則是一對多的關系, MySQL支持30多種字符集的70多種校對規則。
每個字符集至少對應一個校對規則。 可以用SHOW COLLATION LIKE 'utf8%';命令查看相關字符集的校對規則。
4.3 Unicode簡述
Unicode是一種編碼規范。我們在這裡簡述一下Unicode編碼產生的歷史。
先從 ASCII碼說起,ASCII碼也是一種編碼規范,只不過 ASCII碼只能最多表示 256個字符,是針對英文產生的,而面對中文、阿拉伯文之類的復雜文字,256個字符顯然是不夠用的。於是各個國家或組織都相繼制定了符合自己語言文字的標准,比如 gb2312、big5等等。但是這種各自制定自己的標准的做法顯然是有很多弊端的,於是Unicode編碼規范應運而生。
Unicode也是一種字符編碼方法,不過它是由國際組織設計,可以容納全世界所有語文字的編碼方案。Unicode的學名是"Universal Multiple-Octet Coded Character Set",簡稱為UCS。UCS可以看作是"Unicode Character Set"的縮寫。
Unicode有兩套標准UCS-2和UCS-4,前者用2個字節表示一個字符,後者用4個字表示一個字符。以目前常用的 UCS-2為例,它可以表示的字符數為 2^16=65535,基本上可以容納所有的歐美字符和絕大多數亞洲字符。
4.4 怎樣選擇合適的字符集
我們建議在能夠完全滿足應用的前提下,盡量使用小的字符集。因為更小的字符集意味著能夠節省空間、減少網絡傳輸字節數,同時由於存儲空間的較小間接的提高了系統的性
能。
有很多字符集可以保存漢字,比如utf8、gb2312、gbk、latin1等等,但是常用的是gb2312和gbk。因為gb2312字庫比gbk字庫小,有些偏僻字(例如:洺)不能保存,因此在選擇字符集的時候一定要權衡這些偏僻字在應用出現的幾率以及造成的影響, 不能做出肯定答復的話最好選用gbk。
4.5 MySQL字符集的設置
MySQL的字符集和校對規則有4個級別的默認設置:服務器級、數據庫級、表級和字段級。分別在不同的地方設置,作用也不相同。
服務器字符集和校對,在MySQL服務啟動的時候確定。
可以在my.cnf中設置:
[MySQLd]
default-character-set=utf8
或者在啟動選項中指定:
MySQLd --default-character-set=utf8
或者在編譯的時候指定:
./configure --with-charset=utf8
如果沒有特別的指定服務器字符集,默認使用latin1作為服務器字符集。上面三種設置的方式都只指定了字符集,沒有指定校對規則,這樣是使用該字符集默認的校對規則,如果要使用該字符集的非默認校對規則,則需要在指定字符集的同時指定校對規則。
可以用 show variables like 'character_set_server';命令查詢當前服務器的字符集和校對規則。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved