2012-11-28 22 views
2

我在Liferay的6.1插入來自csv文件記錄到mysql數據庫上傳到數據庫中。我已經設置porta-ext.properties文件與錯誤:特殊字符不會從CSV中的Liferay 6.1

jdbc.default.driverClassName=com.mysql.jdbc.Driver 
jdbc.default.url=jdbc:mysql://localhost:3306/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false 
jdbc.default.username=root jdbc.default.password=root 

當我試圖上傳記錄,它會引發錯誤的特殊字符像 錯誤的詳細信息:

13:38:21,001 ERROR [JDBCExceptionReporter:75] Data truncation: Data too long for column 'providerName' at row 1 

當我刪除這些字符它堅持記錄沒有錯誤。

任何人都可以建議我如何解決這個問題。

謝謝

回答

0

如果你的數據庫是UTF-8,你有它的「特」字可能比大多數你缺少「的file.encoding = UTF-8」 VM參數(-Dfile.encoding = UTF-8),或者至少你應該在打開文件/流時指定編碼。

+0

從文件檢索是不是一個問題,因爲它是從csv文件和打印檢索在控制檯上沒有任何錯誤。我將記錄存儲到List中,然後將其存儲到數據庫中。在持久層產生錯誤。 UTF-8字符直接存儲到MySql中,沒有任何錯誤。問題在於通過Liferay Service Builder存儲到MySql中。 –

+0

你可以爲測試,爲providerName只輸入一個「特殊」字符(刪除其餘的),看看會發生什麼(在所有csv行或嘗試在csv只有一行)。當出現錯誤時,請顯示堆棧跟蹤的完整(或相關部分)。 –

+0

我已經在csv文件中輸入了café,然後上傳它會拋出以下錯誤:08:54:13,796錯誤[JDBCExceptionReporter:75]數據截斷:數據太長,無法在第1行列'providerName' 08:54:13,812錯誤[Admin :812]caf∩┐╜ –