我有一個web應用程序,從用戶收集一些數據並將它們保存到mysql數據庫。問題是,對於像「Ajánlatkiküldése」這樣的字符串,存儲到數據庫的是「Ajânlatkiküldése」。struts,休眠,mysql - 字符編碼問題
對於我的數據庫,我有DEFAULT CHARACTER SET utf8。對於我的表,我有DEFAULT CHARSET = utf8。
在我的hibernate.cfg.xml我有:
<property name="hibernate.connection.useUnicode">true</property>
<property name="hibernate.connection.characterEncoding">UTF-8</property>
<property name="hibernate.connection.charSet">UTF-8</property>
如果我使用MySQL客戶端輸入「Ajánlatkiküldése」直接進入數據庫,文本被正確保存。因此,在我的應用程序內部的某處,文本發生了變化。
我有這個在我的JSPX頁:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
對於我的形式我用sutrts html標記庫,代碼很簡單:
<html:form action="/submitAddProject">
<table>
<tr>
<td>name</td>
<td>
<html:text property="projectNameToAdd"/>
<td>
etc.
在提交時,當我做myForm.getProjectNameToAdd ,我的文本與我在表單中輸入的不同。 (Ajánlatkiküldé本身,而不是Ajánlatkiküldése)
一兩件事:當我在數據庫中手動輸入的文本,它被正確地在我的應用程序中顯示。該問題僅在保存文本時出現。 – Mihaela 2010-10-09 08:15:14
在我保存到數據庫之前,當我在我的字符串字段上調用getter來產生問題時,我已經以錯誤的編碼獲取了文本。所以,當我嘗試保存到數據庫時,問題並非如此,但是當我的表單對象的字段正在從html頁面填充時,更確切地說,由stter接收的字符串已經扭曲,並且與輸入的字符串不同在文本字段中。 – Mihaela 2010-10-09 08:42:05
你使用任何連接池framewrok? – fmucar 2011-02-14 09:48:09