mysql 中 字元設定

來源:互聯網
上載者:User

Mysql關於字元集的變數有


SQL:  show variables like '%character%'

+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | gbk                                           |
| character_set_connection | gbk                                           |
| character_set_database   | utf8                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | gbk                                           |
| character_set_server     | latin1                                        |
| character_set_system     | utf8                                          |
| character_sets_dir       | D:\wamp\bin\mysql\mysql5.5.16\share\charsets\ |
+--------------------------+-----------------------------------------------+


上面就是所有關於Mysql中字元集的設定,相信弄懂的了上面的變數的含義,就再也不會有什麼資料亂碼的煩惱了吧

character_set_client,character_set_connection,character_set_result

這三個變數,
分別告訴MySQL 用戶端的編碼集, 在傳輸給MySQL伺服器的時候的編碼集, 以及期望MySQL返回的結果的編碼集,

我們要想得到正確編碼的資料,首它們的編碼集應該一樣,而設定編碼上面三個變數編碼集一樣有一個快捷方法:

set names utf8

執行上面的那個命令,可以一次將 character_set_client,character_set_connection,character_set_result 

三個變數都設定成 UTF-8 的編碼,

然後我們要得到正解編碼的資料,還要知道資料庫的編碼方法,也就是上面設定的
character_set_database,這隻是資料庫的預設編碼,而

我們知道存放資料的是表,所以我們要以表中的字元為基準,如果不設定表的字元集的話,會繼承資料庫字元集

所以如果資料庫出現亂碼的情況下,我們就看一下上面的四種情況下的編碼是不是一樣


對於Java中,執行Set names utf8 並不以解決亂碼問題,而其中解決的辦法是改變串連串,在連接字串中指定字元集:

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/xsgl?useUnicode=true&characterEncoding=UTF-8","root","root");


這個字元集指定的是character_set_client  ;character_set_connection 的編碼是utf8,而並沒有指定 character_set_results
的編碼為空白,

所以現在存放資料庫應該沒問題,但如果取出,還要將 character_set_results 的編碼與應用程式的編碼(控制台、Java等)相同 

http://hi.baidu.com/dburu/blog/item/67b0958bff8b5fdbfd1f108c.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.