1. 程式人生 > >mycat中文亂碼-解決方案

mycat中文亂碼-解決方案

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

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  

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

2) 檢視資料庫級別的編碼是不是一致的,使用mysql客戶端可以看到

3. mycat的編碼

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

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

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

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

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

然後根據資料庫端的字符集ID配置mycat的字符集

配置conf/index_to_charset.properties

對應為字符集ID=字符集

比如45=utf8mb4

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