comment utiliser (useUnicode=yes characterEncoding=UTF-8) avec DBCP

j'essaie d'insérer une lettre arabe dans la base de données mysql, mais elle ne stocke que "????". J'utilise DBCP pour me connecter avec la base de données mysql, voici la source de données:

          <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"/>

comment configurer L'encodage UTF-8 en configuration DBCP ou comment l'utiliser (useUnicode=yes characterEncoding=UTF-8 ) ?

22
demandé sur wandarkaf 2012-11-13 15:07:17

3 réponses

Selon documentation DBCP vous devez utiliser le paramètre connectionProperties valeur

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

(la fermeture ;!)

34
répondu Mark Rotteveel 2012-11-13 11:46:36

j'ai essayé ce qui suit et cela a fonctionné pour moi en utilisant tomcat 7.0.40 et MySQL 5.5 sur Debian Wheezy box:

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

Notez que & doit être représentée comme &

assurez-vous également que votre mon.cnf pour votre serveur mysql a les lignes suivantes:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
9
répondu Moneim Emad 2013-09-11 15:59:08

spécifiez - le dans le url paramètre, comme ceci:

url="jdbc:mysql://localhost/view_db?useUnicode=yes&amp;characterEncoding=utf8"
7
répondu Slava Semushin 2017-02-22 21:22:04