grails - 在我将 grails 从 2.3.7 升级到 2.4.3 后,所有 request.JSON 数据都被分解了。

标签 grails encoding character-encoding request

这是我的保存方法之一。

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/

相关文章:

grails - 在Cloud Foundry中链接两个应用程序

ios - 如何将NSString编码为Euc-kr

java - 字符编码检测算法

python - 为什么当我从 github 上传 zip 文件中的项目时,所有非英文字符都显示错误?

mysql - 导入 EPF 文件无法完成,因为得到不正确的字符串值错误

unit-testing - 模拟引发模拟域类的异常

grails - 在grails 2.4.3中手动安装rest-client-builder 2.1.1

xml - 使用XmlSlurper解析xml时如何读取冒号属性名称(例如model:name)

C# HttpListener 响应 + GZipStream

java - Informix JDBC ISO-8859-2 编码问题