这是我的保存方法之一。
def domainInstance = new Domain(request.JSON)
domainInstance.save()
...
在升级Grails版本之前,我可以将韩语或其他语言保存到DB而不会出现任何编码问题。 将Grails升级到2.4.3后,使用request.JSON保存的所有AJAX输入数据都会显示如下。
(我也检查了数据库,但保存方式如上所述)
但是,使用params(form)请求的所有其他语言数据,它都保存为原样。
我检查了所有配置(grails.converters.encoding),请求标头的内容类型,GSP页面的字符集值,但是,所有设置都正确。(UTF-8)
所以,我测试如下
def data = request.reader.text
log.debug数据
log.debug request.getCharacterEncoding() - >打印出utf-8
def bindingData = JSON.parse(data) - >打印出与输入相同的数据
def domainInstance = new Domain(bindingData) - >当我检查数据库时,数据已正确保存
因此,我认为JSON.parse(请求)方法可能有问题。
但疯狂的是,这只发生在已部署的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"
答案 0 :(得分:0)
再次是我。 Tomcat设置导致此问题。 更改了语言环境配置后,它正常工作。 但是,我仍然不明白tomcat如何与之前的设置和grails 2.3.7一起工作。 无论如何,我希望这篇文章对于遇到类似问题的人有用。