以下的文章主要介紹的是Mysql中文問題的實際解決方法,其中主要包括MySql字符集的問題解決,ROR+Mysql5 utf8中正確搭配相關問題的實際解決方案,以下就是文章的具體內容的主要描述,望你浏覽之後會有所收獲。
『出錯』Hibernate對象關系在MySQL4.1中無法正確執行?
推薦圈子: JBoss SEAM
更多相關推薦 閱讀過不少關於mysql的編碼設置和亂碼問題的一些文章,經過再三的調試,終於通過,終於解決了一塊心病,終於解了我心頭之恨,哈哈哈。現在把它概括如下。
MySQL 4.1的字符集支持(Character Set Support)有兩個方面:字符集(Character set)和排序方式(Collation)。對於字符集的支持細化到四個層次: 服務器(server),數據庫(database),數據表(table)和連接(connection)。我們最終的目標是使得這四個層次轉化會支持Mysql中文的編碼,下面以utf8為例。
1. 首先查看系統的字符集和排序方式。如果想查看某個特定的數據庫的字符集和排序方式,應該先選定數據庫,mysql>use databasename;
- mysql> SHOW VARIABLES LIKE ''character_set_%'';
- +--------------------------+----------------------------+
- | Variable_name | Value |
- +--------------------------+----------------------------+
- | character_set_client | latin1 |
- | character_set_connection | latin1 |
- | character_set_database | latin1 |
- | character_set_results | latin1 |
- | character_set_server | latin1 |
- | character_set_system | utf8 |
- | character_sets_dir | /usr/share/mysql/charsets/ |
- +--------------------------+----------------------------+
- 7 rows in set (0.00 sec)
- mysql> SHOW VARIABLES LIKE ''collation_%'';
- +----------------------+-------------------+
- | Variable_name | Value |
- +----------------------+-------------------+
- | collation_connection | latin1_swedish_ci |
- | collation_database | latin1_swedish_ci |
- | collation_server | latin1_swedish_ci |
- +----------------------+-------------------+
- 3 rows in set (0.00 sec)
上面列出的值就是系統的默認值,lanti是不支持Mysql中文的,所以我們把它改成urf8。
下面我們就來修改這四個層次的編碼方式:
1 在my.cf文件的[mysqld]段設置:
- default-character-set=utf8
這條語句的作用是把character_set_client, character_set_connection_,character_set_results 設定為utf8,包括對應的排列方式的編碼。
Character_set_server是系統編碼,這個是不用改的。
當然改變character_set_client, character_set_connection_,character_set_results編碼方式的另外一種方法是:
- SET NAMES “UTF8”;
它的作用相當於:
- SET character_set_client = utf8;
- SET character_set_results = utf8;
- SET character_set_connection = utf8;
2. 改變數據庫的編碼方式
- alter database databasename character set utf8;
通過以上的更改數據庫的編碼工作算是昨晚了,當然除了這個方法還有一個萬能個的方法,那就是看著那個不是utf8,你只要把相應的編碼改成utf8就可以了。格式如下:SET
- character_set_client = utf8;
3. 不管你是web編程還是桌面編程,你的數據庫的連接地址url中,一定要後綴:
- ?useUnicode=true&characterEncoding=utf-8/hibernate?useUnicode=true&characterEncoding=utf-8
當然如果你采用了mysql的管理工具如mysql yog,mysql manager那麼你數據庫設定也可以在可視化環境下直接設置。當然這也只是限制在database的設定。
以上的相關內容就是對Mysql中文問題解決方案的介紹,望你能有所收獲。
編輯推薦】