讓MySQL支持中文,有兩種方法:
1、用JDBC連的時候,URL要使用這樣的形式:
jdbc:MySQL://localhost:3306/test?useUnicode=true&characterEncoding=EUC_CN
這種方法性能可能有一定損失,因為要經過一定的轉換。而且假如是在Tomcat裡面用,又用了DBCP,則該方法無效。(我懷疑是由於DBCP的URL參數裡面其他屬性都是無效的,別的連接屬性只能放在connectionProperties裡面配置,但DBCP的文檔對connectionPropertIEs的配置說得不清不楚)。
2、在my.ini的[mysqld]段下面加上default-character-set=gbk,則java端的URL無需加上useUnicode等參數,也可以正常處理中文。要注意的問題是這種方法如果用的是MySQL-connector-Java-3.0.11-stable-bin.jar驅動,則會出現下面的錯誤:
Error: java.sql.SQLException: Error during query: Unexpected Exception: Java.lang.StringIndexOutOfBoundsException message given: String index out of range: 40
……
使用mysql-connector-java-3.1.2-alpha-bin.jar與MySQL-connector-Java-3.1.3-beta-bin.jar都可以正常工作。