通过grails app中的webform提交特殊字符,例如“ščćđž”

时间:2011-12-12 19:50:46

标签: mysql grails utf-8 spring-security special-characters

我正在开发grails应用程序,连接到MySql数据库...我已经使用utf-8字符集创建了数据库并使用了整理...默认情况下,字符集在mysql服务器上设置为utf-8。 ..但我明确地为我的架构定义了它

在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创建新用户时,在某些字段中我输入字符š,č,đ,ć或ž......插入数据库中的值类似于ÄÄÄ。 ..但我希望价值是ččč

当我在MySql Workbench中通过SQL语句插入新用户时,我将其保存为字段值“ččč”,当我将该用户加载到我的list.gsp或show.gsp时,我可以在浏览器中看到ččč ......

因此,当通过webform保存用户时,问题就出现在了... 有人可以帮忙吗?

P.S。我不知道它是否相关,但当我在webform上的textfield中键入这些字符时,我将键盘从EN(英语)切换到Windows中的语言栏中的SR(塞尔维亚语拉丁语)

Grails 1.3.7

STS 2.8.1

MySQL的连接器的Java-5.1.18

Windows 7

4 个答案:

答案 0 :(得分:1)

我设法使用<g:uploadForm >代码而不是<g:form>来使其工作,并且在其中,常规<g:textfield>用于我想要保存的值。除了其他一切都是Grails生成的,比如DataSource.groovy,Config.groovy,我的* .gsp文件,就像我解释的那样...有没有人知道这2个标签之间的区别?

答案 1 :(得分:1)

您遇到的问题是由Grails插件引起的,特别是“webxml”插件版本1.4。

您需要在项目中升级该插件,如下所示:

  1. 如果Grails应用程序正在运行,请将其停止。

  2. 转到“%USERHOME%。grails \ 1.3.7 \ projects \%YOUR_PROJECT%\ plugins”文件夹,其中%YOUR_PROJECT%是您项目的名称,而Windows 7上的%USERHOME%是“C:\ Users” \ YOUR_NAME”。

  3. 应该有一个名为“webxml-1.4”的文件夹。删除它。

  4. 转到Grails项目文件夹。

  5. 输入“grails install-plugin webxml”并在询问后确认升级到1.4.1。

  6. 运行您的申请 - 即使在脚手架下,现在也可以正确解释非英文字母。

答案 2 :(得分:0)

如果您使用的是HTML5,请在页面上添加<meta charset="utf-8">标记,并在表单元素上设置属性accept-charset="UTF-8"。似乎有必要可靠地使用所有浏览器以UTF-8提交表单。

答案 3 :(得分:0)

运行

SET NAMES UTF8
连接后