Отправка специальных символов, таких как «š č ć đ ž», через веб-форму в приложении grails - PullRequest
3 голосов
/ 12 декабря 2011

Я занимаюсь разработкой приложения grails, подключенного к базе данных MySql ... Я создал базу данных с набором символов utf-8 и с этим сопоставлением ... также по умолчанию для набора символов установлено значение utf-8 на сервере mysql. .. но я определил это явно для моей схемы

В приложении Grails, которое я определил в Datasource.groovy

url = "jdbc:mysql://localhost:3306/blabla?useUnicode=true&characterEncoding=utf-8"

также в Config.groovy

grails.views.gsp.encoding = "UTF-8"
grails.converters.encoding = "UTF-8"

в мои файлы .gsp, которые я добавил

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Поэтому, когда я пытаюсь создать нового пользователя с помощью views / user / create.gsp, и в каком-то поле я вводю символы š, č, đ, ć или ž ... значение, вставленное в базу данных, выглядит как ÄÄÄ. .. но я хочу, чтобы значение было ččč

Когда я вставляю нового пользователя с помощью SQL-статистики в MySql Workbench, он сохраняется так, как я хочу, со значением поля «ččč», когда я загружаю этого пользователя в свой list.gsp или show.gsp, который я вижу в браузере ččč ...

Таким образом, проблема заключается в том, что где-то в процессе сохранения пользователя через веб-форму ... Кто-нибудь может помочь?

P.S. Я не знаю, уместно ли это, но когда я набираю эти символы в текстовом поле на веб-форме, я переключаю свою клавиатуру с EN (английский) на SR (сербский латиница) в языковой панели в Windows

Граальс 1.3.7

STS 2.8.1

MySQL-разъем-Java-5.1.18

Windows 7

Ответы [ 4 ]

1 голос
/ 30 декабря 2011

Проблема, с которой вы столкнулись, вызвана плагином Grails, а именно плагином "webxml" версии 1.4.

Вам необходимо обновить этот плагин в своем проекте следующим образом:

  1. Остановите приложение Grails, если оно запущено.

  2. Перейдите в папку "% USERHOME% .grails \ 1.3.7 \ projects \% YOUR_PROJECT% \ plugins", где находится% YOUR_PROJECT%имя вашего проекта и% USERHOME% в Windows 7 - «C: \ Users \ YOUR_NAME».

  3. Там должна быть папка с именем «webxml-1.4».Удалите его.

  4. Перейдите в папку проекта Grails.

  5. Введите «grails install-plugin webxml» и подтвердите обновление до 1.4.1если спросят.

  6. Запустите ваше приложение - неанглийские буквы теперь будут правильно интерпретироваться даже под лесами.

1 голос
/ 13 декабря 2011

Мне удалось заставить его работать, используя тег <g:uploadForm > вместо <g:form>, и внутри него, обычный <g:textfield> для значений, которые я хотел сохранить. Кроме того, все остальное генерируется Grails, как DataSource.groovy, Config.groovy, мои * .gsp файлы, как я их объяснил в вопросе ... Кто-нибудь знает разницу между этими 2 тегами?

0 голосов
/ 13 декабря 2011

Пробег

SET NAMES UTF8

после подключения.

0 голосов
/ 13 декабря 2011

Поместите тег <meta charset="utf-8"> на свою страницу, если вы используете HTML5, и установите атрибут accept-charset="UTF-8" для элементов формы. Похоже, что необходимо надежно отправлять формы в UTF-8 во всех браузерах.

...