環境:Hibernate 2.1.7 + MySQL4.1(MySQL的編碼已設置為utf8)
問題:通過Hibernate向MySQL寫入中文后,通過Hibernate取回數據,在console中打印java對象顯示正常。但在MySQL Query Browser中看到的是亂碼,傳給前端的Flex也是亂碼。
原因:Hibernate的基礎還是JDBC,所以一樣需要設置characterEncoding!
解決方法:
在hibernate.cfg.xml中應該這樣寫
<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一樣可以。
但字節編碼問題最好的解決方法還是統一使用UTF-8!!!