Я успешно использую последнюю банку смолы (с http://www.caucho.com/download/). ), чтобы я мог использовать устаревший код PHP в своем веб-приложении Grails. Все отображается отлично, КРОМЕ наборов символов, отличных от ASCII.
Эти символы отображаются в виде вопросительных знаков и выглядят следующим образом: ???? ?? ???.
Я пробовал множество решений:
От настройки php.ini как utf8 до включения extension=php_mbstring.dll
в php.ini. Я также убедился, что база данных MySQL настроена на использование utf-8. Символы, хранящиеся в базе данных, правильно отображаются в phpMyAdmin.
Кроме того, я могу ввести die("BLAH")
, где BLAH — текст, отличный от ASCII, и он будет корректно выводиться в браузер. Мой браузер показывает заголовок содержимого utf-8 на всех страницах.
Еще одним преимуществом является то, что я могу взять кодовую базу PHP, работающую в Grails, и запустить ее на сервере WAMP на ТОМ ЖЕ компьютере, подключившись к ТОМУ ЖЕ MySQL , и она отлично выводит символы, отличные от ASCII.
Я чувствую, что это проблема передачи данных из MySQL в PHP, работающий в Grails (помните, он работает из MySQL в тот же PHP, работающий в WAMP). В обоих случаях я даже выполняю mysql_query("SET NAMES 'utf8'")
перед выполнением моего запроса.
Я также пытался взять файл WAMP php.ini и использовать его в Grails, но Grails PHP по-прежнему не будет хорошо работать... Часть меня думает, что каким-то образом PHP в Grails не читает файл php.ini, и возвращается к некоторому файлу php.ini по умолчанию (о котором я не знаю).
Например, если я сделаю файл php.ini для Grails пустым, Grails все равно запустится нормально, и я смогу отображать php-страницы. НО, если я установлю php.ini на мусорный текст, такой как «asdfasdf», Grails не запустится... так что это наводит меня на мысль, что он видит php.ini...
Дополнительная информация:
- Версия MySQL: 5.0.22
- Версия PHP в Grails (резина/Quercus): 5.3.2
- Версия PHP в WAMP: 5.1.4
- Версия Grails 2.2
Я перепробовал все, что нашел в Интернете, но безуспешно... Спасибо за помощь!