標籤:
1. 問題描述
在報表開發工具FineReport中,mysql資料庫連接通過資料連線編碼轉換進行編碼的轉換,在通過報表錄入往資料庫中錄入中文資料的時候,總是出現亂碼,這個該怎麼解決呢?
2. 解決方案
2.1 檢查系統的預設字型
例如查看windows下C/window/fonts的字型樣式,如:
如果沒有以上字型,百度一下缺少字型自行安裝,安裝之後,已經包含以上的字型如果還是出現問題,則需要參看及修改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 ,而不是通過定義資料連線視窗下面的編碼轉換進行設定,如下:
報表開發工具中mysql資料庫連接編碼轉化失效解決方案