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
Тем не менее, он не сделал никаких изменений...