Mysql 提交特殊字符,如ščćđž&引用;,通过grails应用程序中的webform
我正在开发grails应用程序,连接到MySql数据库。。。我已经用utf-8字符集和排序规则创建了数据库。。。在mysql服务器上,默认情况下字符集设置为utf-8。。。但我为我的模式明确定义了它 在grails应用程序中,我在Datasource.groovy中定义了Mysql 提交特殊字符,如ščćđž&引用;,通过grails应用程序中的webform,mysql,grails,utf-8,spring-security,special-characters,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.
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保存用户的过程中的某个地方。。。
有人能帮忙吗
另外,我不知道这是否相关,但当我在网络表单的文本字段中键入这些字符时,我会在Windows的语言栏中将键盘从英语切换到塞尔维亚语拉丁语
Grails1.3.7
STS 2.8.1
mysql-connector-java-5.1.18
如果您使用的是HTML5,Windows 7将在页面上放置一个标签,并在表单元素上设置属性accept charset=“UTF-8”
。似乎有必要在所有浏览器中可靠地以UTF-8格式提交表单。运行
SET NAMES UTF8
连接后。我使用了
标记,而不是
,并在其中,为我想要保存的值设置了常规的
。除此之外,其他所有内容都是由Grails生成的,比如DataSource.groovy、Config.groovy和我的*.gsp文件,就像我在讨论中解释的那样。。。有人知道这两个标签之间的区别吗?您遇到的问题是由Grails插件引起的,特别是“webxml”插件版本1.4
您需要在项目中升级该插件,如下所示:
好吧,我已经试过纽托弗说的了,仍然不起作用。然后我在我的页面上添加了meta标记,并接受g:textfield标记中的charset=“UTF-8”,就像你说的,这还不够@webarto能否请您更具体一点,我把这个“SET NAMES UTF8”语句放在哪里,放在DataSource.groovy中,以及如何定义它。另外,在调试过程中,我注意到,当我在保存操作中停止UserController中的进程时,userInstance由def userInstance=new User(params)创建,我发现它已经是编码为ÄÄ而不是ઈ楙的有问题的字段。。。userInstance.save(flush:true)在连接到数据库后只需运行SQL查询,您需要将连接排序规则设置为UTF8,bre…@webarto nope,不是这样的:(如何在grails中自动进行数据库连接?它有Datasource.groovy文件,可以为您处理所有连接,所以您永远不会调用数据库,只需编写代码即可。就像@drago所说的,我在Datasource.groovy中也需要这个。您可以看看我的问题:如果问题得到成功回答,您应该标记为提出相同/类似问题的人提供工作答案。