報表開發工具中mysql資料庫連接編碼轉化失效解決方案

來源:互聯網
上載者:User

標籤:

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資料庫連接編碼轉化失效解決方案

聯繫我們

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