我正在开发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
答案 0 :(得分:1)
我设法使用<g:uploadForm >
代码而不是<g:form>
来使其工作,并且在其中,常规<g:textfield>
用于我想要保存的值。除了其他一切都是Grails生成的,比如DataSource.groovy,Config.groovy,我的* .gsp文件,就像我解释的那样...有没有人知道这2个标签之间的区别?
答案 1 :(得分:1)
您遇到的问题是由Grails插件引起的,特别是“webxml”插件版本1.4。
您需要在项目中升级该插件,如下所示:
如果Grails应用程序正在运行,请将其停止。
转到“%USERHOME%。grails \ 1.3.7 \ projects \%YOUR_PROJECT%\ plugins”文件夹,其中%YOUR_PROJECT%是您项目的名称,而Windows 7上的%USERHOME%是“C:\ Users” \ YOUR_NAME”。
应该有一个名为“webxml-1.4”的文件夹。删除它。
转到Grails项目文件夹。
输入“grails install-plugin webxml”并在询问后确认升级到1.4.1。
运行您的申请 - 即使在脚手架下,现在也可以正确解释非英文字母。
答案 2 :(得分:0)
如果您使用的是HTML5,请在页面上添加<meta charset="utf-8">
标记,并在表单元素上设置属性accept-charset="UTF-8"
。似乎有必要可靠地使用所有浏览器以UTF-8提交表单。
答案 3 :(得分:0)
运行
SET NAMES UTF8
连接后。