環(huán)境:Hibernate 2.1.7 + MySQL4.1(MySQL的編碼已設(shè)置為utf8)
問題:通過Hibernate向MySQL寫入中文后,通過Hibernate取回數(shù)據(jù),在console中打印java對象顯示正常。但在MySQL Query Browser中看到的是亂碼,傳給前端的Flex也是亂碼。
原因:Hibernate的基礎(chǔ)還是JDBC,所以一樣需要設(shè)置characterEncoding!
解決方法:
在hibernate.cfg.xml中應(yīng)該這樣寫
<property name="connection.url">jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8</property>
如果用hibernate.properties
#hibernate.connection.url jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
ps:處理中文的話,characterEncoding用GBK一樣可以。
但字節(jié)編碼問題最好的解決方法還是統(tǒng)一使用UTF-8?。?!