MySQL4.1的字符集講解(轉至hibernate中文網)

MySQL數據庫的4.1是一個分水嶺,4.1直接支持Unicode,以下版本支持的不好;

MySQL JDBC Driver的3.0.16也是一個分水嶺,3.0.16版本會取數據庫本身的編碼,然後按照該編碼轉換,這種方式和Oracle的JDBC Driver是一樣的。例如你的數據庫是GBK編碼的話,JDBC Driver就會把數據庫裏面的取出來的字符串按照GBK往unicode轉換,送給JVM。因此正確的設置數據庫本身的編碼就尤爲重要。

MySQL JDBC Driver3.0.16以下的版本則不然,它不會那麼智能的根據數據庫編碼來確定如何轉換,它總是默認使用ISO8859-1,因此你必須使用 characterEncoding=GBK來強制他把數據庫中取出來的字符串按照GBK來往unicode轉換。

因此,使用什麼數據庫版本,不管是3.x,還是4.0.x還是4.1.x,其實對我們來說不重要,重要的有二:

1) 正確的設定數據庫編碼,MySQL4.0以下版本的字符集總是默認ISO8859-1,MySQL4.1在安裝的時候會讓你選擇。如果你準備使用UTF- 8,那麼在創建數據庫的時候就要指定好UTF-8(創建好以後也可以改,4.1以上版本還可以單獨指定表的字符集)

2) 使用3.0.16以上版本的JDBC Driver,那麼你就不需要再寫什麼characterEncoding=UTF-8
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章