報表開發工具中mysql數據庫鏈接編碼轉化失效解決方案

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  ,而不是經過定義數據鏈接窗口下面的編碼轉換進行設置,以下:

相關文章
相關標籤/搜索