Mysqlデータベースにアラビア文字を挿入しようとしていますが、「????」のみが保存されています。 mysql databseとの接続に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"/>
dBCP構成でUTF-8エンコーディングをセットアップする方法または使用方法(useUnicode = yes characterEncoding = UTF-8)
DBCPドキュメント によると、パラメータconnectionProperties
を値[propertyName=propertyValue;]*
と共に使用する必要があるため、あなたの場合、次のようなものを使用する必要があります。
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/view_db"
connectionProperties="useUnicode=yes;characterEncoding=utf8;"
maxActive="50"
(最後の;
!に注意してください)
以下を試してみましたが、Debian WheezyボックスでTomcat 7.0.40とMySQL 5.5を使用して動作しました:
url="jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8"
ampとして表す必要があることに注意してください;
また、mysqlサーバーのmy.cnfに次の行があることを確認してください。
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
次のように、url
パラメーターで指定します。
url="jdbc:mysql://localhost/view_db?useUnicode=yes&characterEncoding=utf8"