这是我的保存方法之一。
def domainInstance = new Domain(request.JSON)
domainInstance.save()
...
在升级 Grails 版本之前,我可以将韩语或其他语言保存到数据库,而不会出现任何编码问题。
将 Grails 升级到 2.4.3 后,使用 request.JSON 保存的所有 AJAX 输入数据都显示为这样。
������������
(我也检查了数据库,但它像上面一样保存)
但是,使用 params(form) 请求的所有其他语言数据都按原样保存。
我检查了所有配置(grails.converters.encoding)、请求 header 的内容类型、GSP 页面的字符集值,但是,一切都设置正确。(UTF-8)
所以,我测试如下
def 数据 = request.reader.text
日志调试数据
log.debug request.getCharacterEncoding() --> 打印出 utf-8
def bindingData = JSON.parse(data) --> 打印出与输入相同的数据
def domainInstance = new Domain(bindingData) --> 当我检查数据库时,数据被正确保存
因此,我认为 JSON.parse(request) 方法可能有问题。
但疯狂的是这只发生在部署的 linux 服务器上。
它不会发生在本地环境中。
我希望有人给我好的建议
我厌倦了这个问题。
这是我升级的插件列表,供您引用。
build ":tomcat:7.0.55"
compile ":scaffolding:2.1.2"
compile ':cache:1.1.7'
compile ":asset-pipeline:1.9.6"
runtime ":hibernate4:4.3.5.5"
runtime ":database-migration:1.4.0"
runtime ":jquery:1.11.1"
runtime ":resources:1.2.8"
test ":code-coverage:2.0.3-1"
最佳答案
又是我。
Tomcat 设置会导致此问题。
在我更改语言环境配置后,它工作正常。
但是,我仍然不明白 tomcat 如何与以前的设置和 grails 2.3.7 一起工作。
无论如何,我希望这篇文章对遇到类似问题的人有所帮助。
关于grails - 在我将 grails 从 2.3.7 升级到 2.4.3 后,所有 request.JSON 数据都被分解了。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567407/