Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 提交特殊字符,如ščćđž&引用;,通过grails应用程序中的webform_Mysql_Grails_Utf 8_Spring Security_Special Characters - Fatal编程技术网

Mysql 提交特殊字符,如ščćđž&引用;,通过grails应用程序中的webform

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.

我正在开发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保存用户的过程中的某个地方。。。 有人能帮忙吗

另外,我不知道这是否相关,但当我在网络表单的文本字段中键入这些字符时,我会在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

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

  • 如果Grails应用程序正在运行,请停止它

  • 转到“%USERHOME%.grails\1.3.7\projects\%YOUR\u PROJECT%\plugins”文件夹,其中%YOUR\u PROJECT%是项目的名称,Windows 7上的%USERHOME%是“C:\Users\YOUR\u name”

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

  • 转到Grails项目文件夹

  • 键入“grails安装插件webxml”,并确认升级到1.4.1(如果需要)

  • 运行您的应用程序-即使在脚手架下,非英语字母现在也能正确解释


  • 好吧,我已经试过纽托弗说的了,仍然不起作用。然后我在我的页面上添加了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中也需要这个。您可以看看我的问题:如果问题得到成功回答,您应该标记为提出相同/类似问题的人提供工作答案。