1. 問題描述mysql
在報表開發工具FineReport中,mysql數據庫鏈接經過數據鏈接編碼轉換進行編碼的轉換,在經過報表錄入往數據庫中錄入中文數據的時候,老是出現亂碼,這個該怎麼解決呢?linux
2. 解決方案sql
2.1 檢查系統的默認字體數據庫
例如查看windows下C/window/fonts的字體樣式,以下圖:windows
若是沒有以上字體,百度一下缺乏字體自行安裝,安裝以後,已經包含以上的字體若是仍是出現問題,則須要參看及修改MySQL字符集。服務器
2.2 參看及修改MySQL字符集工具
· 查看MySql字符集開發工具
MySQL字符集介紹:MySQL的字符集支持(Character Set Support)有兩個方面:字符集(Character set)和排序方式(Collation)。字體
對於字符集的支持細化到四個層次:服務器(server), 數據庫(database), 數據表(table), 鏈接(connection)。編碼
查看默認字符集 (默認狀況下,mysql的字符集是latin1(ISO_8859_1)
一般,查看系統的字符集和排序方式的設定能夠經過下面的兩條命令實現:
1. SHOW VARIABLES LIKE 'character%';//查看字符集 ,以下圖:
1. SHOW VARIABLES LIKE 'collation_%';//查看排序方式 ,以下圖:
· 修改MySql字符集
方法一:
修改mysql的my.ini文件中的字符集鍵值。
1. default-character-set = utf8
2. character_set_server = utf8
修改完後,重啓mysql的服務,service mysql restart, 使用
1. mysql> SHOW VARIABLES LIKE 'character%';
查看,發現數據庫編碼均已改爲utf8。
方法二:
使用sql命令
1. SET character_set_client = utf8 ;
2. SET character_set_connection = utf8 ;
注:character_set_connection,database,results,server這四個字符一致,就能夠不出現亂碼。以上修改字符集的方法是windows系統下的,若是是linux系統,使用linux下面的方法便可,思路同樣。
修改完成以後,經過
1. show variables like 'character_set_%'
查看字符編碼,修改完以後若是仍是出現亂碼問題。則須要在設計器定義數據鏈接數修改。
2.3 數據鏈接修改
在定義數據鏈接增長URL的地方增長參數
1. ?useUnicode=true&characterEncoding=UTF-8 ,而不是經過定義數據鏈接窗口下面的編碼轉換進行設置,以下: