程式寫入mycat中文亂碼解決(也包括mysql編碼修改)

來源:互聯網
上載者:User

標籤:

亂碼問題可能出現的三個地方

1.程式串連的編碼要設定

       

  jdbc:mysql://192.168.1.1:8066/TESTDB?useUnicode=true&characterEncoding=utf8

2. mysql資料庫的編碼要設定

1)        查看mysql server層級的編碼集

           首先進入mysql使用命令:

     mysql -uroot –p

   然後 執行命令查看:

 show variables like ‘character%‘ +--------------------------+----------------------------+| Variable_name            | Value                      |+--------------------------+----------------------------+| character_set_client     | latin1                     || character_set_connection | latin1                     || character_set_database   | utf8                       || character_set_filesystem | binary                     || character_set_results    | NULL                       || character_set_server     | latin1                     || character_set_system     | utf8                       || character_sets_dir       | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+

 

編輯/etc/mysql/my.cf檔案

在[client]下添加  

default-character-set=utf8   

 

在[mysqld]  下添加

character_set_server=utf8  (如果重啟mysql出錯調整位置,在[mysqld] 最下面)
我機器上是這樣配置的:
[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlcharacter-set-server=utf8# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0

註:[mysqld]處也可使用default-character-set=utf8,如果啟動mysql服務出錯的話,就使用character_set_server=utf8。

2) 查看資料庫層級的編碼是不是一致的,使用mysql用戶端可以看到

mysql> show variables like ‘character%‘;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+




 

3. mycat的編碼

預設的是utf8格式的,明確指定在server.xml下的system標籤下添加格式如下:

<property name="charset">utf8</property>

 

4. 如果業務需要utf8mb4 等複雜字元集配置對應修改:

預設的是utf8格式的,明確指定在server.xml下的system標籤下添加格式如下:

<property name="charset">utf8mb4</property>

 

然後根據資料庫端的字元集ID配置mycat的字元集序列:

配置conf/index_to_charset.properties

 

對應為字元集ID=字元集

比如45=utf8mb4

 

上述四點配置的編碼一致的話亂碼就不會出現了。

程式寫入mycat中文亂碼解決(也包括mysql編碼修改)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.