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 installer l'encodage UTF-8 avec dans la configuration DBCP ou comment utiliser (useUnicode = yes characterEncoding = UTF-8)?
Selon la documentation DBCP vous devez utiliser le paramètre connectionProperties
avec la valeur [propertyName=propertyValue;]*
, dans votre cas, vous devez utiliser quelque chose comme:
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/view_db"
connectionProperties="useUnicode=yes;characterEncoding=utf8;"
maxActive="50"
(notez la fermeture ;
!)
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&characterEncoding=utf8"
Notez qu'il doit être représenté par amp;
assurez-vous également que votre my.cnf pour votre serveur mysql a les lignes suivantes:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
Spécifiez-le dans le paramètre url
, comme ceci:
url="jdbc:mysql://localhost/view_db?useUnicode=yes&characterEncoding=utf8"