INSERT INTO words (word, meaning) VALUES ('Цветок', 'Flower')
当我从SQL客户端(DbVisualizer)执行此SQL语句时,表中的值看起来与您在语句中看到的完全相同,即Цветок
未编码。
当我从 PHP over Tomcat 8 / Java版本“1.8.0_101”(Quercus 4.0.39)执行它时,表中的值编码就像我运行PHP一样{ {3}}关于他们。所以Flower
没有改变,但Цветок
是 - 现在它通过SQL客户端查找表ЦвеÑок
为什么从客户端或PHP运行SQL语句有区别?
如何从PHP插入此数据,以便将其保存在数据库中?
更新
这是我的Tomcat context.xml HSQLDB资源:
<Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="me" password="kjsfhsjhfsd" driverClassName="org.hsqldb.jdbc.JDBCDriver"
url="jdbc:hsqldb:hsql://localhost:9001/mydb?characterEncoding=UTF-8"/>
characterEncoding=UTF-8
实际上是MySql特定的(因此让它破坏了这个资源!)。什么是HSQLDB等价物?我找不到......
我还尝试将php.ini
设置为unicode.semantics=on
,如下所述:
http://www.caucho.com/resin-3.1/doc/quercus.xtp#php.ini
http://www.caucho.com/resin-3.1/doc/quercus.xtp#Internationalization-16-bitunicode
然而,它没有做出任何改变......