2012-11-13 68 views
20

我想將阿拉伯文字母插入到mysql數據庫,但它只存儲「????」。我使用DBCP用於與MySQL DATABSE連接,這裏是數據源:如何使用(useUnicode =是characterEncoding = UTF-8)與DBCP

  <Resource name="jdbc/view_db" 
     auth="Container" 
      type="javax.sql.DataSource" 
      username="root" 
      password="" 
      autoReconnect="true" 
      testOnBorrow="true" 
      validationQuery = "SELECT 1" 
      driverClassName="com.mysql.jdbc.Driver" 
      url="jdbc:mysql://localhost/view_db" 
      maxActive="50" 
      maxIdle="10"/> 

如何設置UTF-8編碼與DBCP配置或如何使用(了useUnicode = YES的characterEncoding = UTF-8)?

+0

只是檢查,也可以指定默認字符集UTF8,同時創造你的MySQL數據庫? – shazin

+0

是的,我確實指定了CHARACTER SET utf8,當它手動輸入時它接受阿拉伯字母,但是,當我試圖從jsp文件插入它時,它不會工作。 – solid

回答

33

根據需要使用參數connectionProperties與價值[propertyName=propertyValue;]*,所以你的情況,你應該使用類似的DBCP documentation

 driverClassName="com.mysql.jdbc.Driver" 
     url="jdbc:mysql://localhost/view_db" 
     connectionProperties="useUnicode=yes;characterEncoding=utf8;" 
     maxActive="50" 

(注意關閉;!)

5

指定它在url參數,就像這樣:

url="jdbc:mysql://localhost/view_db?useUnicode=yes&amp;characterEncoding=utf8" 
+1

我這樣做了,但它說:「無法在\ Servers \ Tomcat v7.0服務器上在localhost-config上加載Tomcat服務器配置,配置可能已損壞或不完整 實體」characterEncoding「的引用必須以';'分隔符「。這是什麼意思? – solid

+2

您需要使用& useUnicode =是& characterEncoding = utf8 – mrgrumpy22

7

我試過以下它,它的工作原理利用我的Tomcat 7.0.40和MySQL 5.5在Debian喘息箱:

url="jdbc:mysql://localhost:3306/mydb?useUnicode=true&amp;characterEncoding=utf8" 

注意&必須表示爲&放大器;

也確保您的MySQL服務器的my.cnf有下面幾行:

[client] 
default-character-set=utf8 

[mysql] 
default-character-set=utf8