HSQLDB / PHP / Tomcat 8 / Quercus - Вставка неанглийских символов

INSERT INTO words (word, meaning) VALUES ('Цветок', 'Flower')

Когда я выполняю этот оператор SQL из клиента SQL (DbVisualizer), значения в таблице выглядят точно так же, как вы видите их здесь в выражении, т.е. Цветок не кодируется.

Когда я выполняю его из PHP поверх Tomcat 8 / Java версии "1.8.0_101" (Quercus 4.0.39), значения в таблице кодируются точно так, как если бы я запускал на них PHP urlencode (). Так Flower не изменился, но Цветок есть - теперь это выглядит в таблице через клиент SQL как ЦвеÑок

Почему есть разница между выполнением оператора SQL из клиента или из PHP?

Как я могу вставить эти данные из 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

http://www.caucho.com/resin-3.1/doc/quercus.xtp#encoding

Тем не менее, он не сделал никаких изменений...

0 ответов

Другие вопросы по тегам