2012-11-13 11 views
20

Sto cercando di inserire la lettera araba nel database mysql, ma memorizza solo "????". Sto usando DBCP per il collegamento con mysql databse, ecco l'origine dati:come usare (useUnicode = yes characterEncoding = UTF-8) con 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"/> 

come impostare codifica UTF-8 con in configurazione DBCP o come usare (useUnicode = yes characterEncoding = UTF-8)?

+0

Stavo solo controllando, hai specificato default Carattere SET utf8 durante la creazione del database MySQL? – shazin

+0

sì, ho specificato SET CARATTERE utf8, accetta lettere arabe quando vengono inserite manualmente, tuttavia non funzionerà quando sto provando ad inserirle dal file jsp. – solid

risposta

33

Secondo il DBCP documentation è necessario utilizzare il parametro connectionProperties con valore [propertyName=propertyValue;]*, così nel tuo caso si dovrebbe usare qualcosa di simile a:

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

(si noti la chiusura ;!)

5

Specificare nel parametro url, in questo modo:

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

L'ho fatto, ma ha detto "Impossibile caricare la configurazione del server Tomcat sul server \ Servers \ Tomcat v7.0 su localhost-config. La configurazione potrebbe essere corrotta o incompleta Il riferimento all'entità" characterEncoding "deve terminare con ';' delimitatore." cosa significa? – solid

+2

È necessario utilizzare & in uso Unicode = sì & characterEncoding = utf8 – mrgrumpy22

7

Ho provato quanto segue e ha funzionato per me usando Tomcat 7.0.40 e MySQL 5.5 sulla scatola Debian Wheezy:

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

noti che & deve essere rappresentato come & amp;

anche fare in modo che il vostro my.cnf per il server MySQL ha le seguenti linee:

[client] 
default-character-set=utf8 

[mysql] 
default-character-set=utf8 
Problemi correlati