目前我正在使用grails应用程序,该应用程序使用其他应用程序使用JSON消息访问其他应用程序。
当我尝试提交带有变音字符(ööä)的表单时,帖子正文的编码不是UTF-8。因此,REST应用程序抛出了Json解析异常。
这是对REST应用程序的grails调用。
withRest(uri: "${url}/service/update") {
def response = post(body: javaClassA, requestContentType: ContentType.JSON)
return response.data
}
这就是grails应用程序如何从javaClassA格式化字段,这个snipet取自grails日志(你可以看到变音字符不是用UTF-8编码的)
DEBUG http.wire - >> “{” 内容 “:”[0xFC有] [0xf6] [0xe4] “...}”
然后是REST应用程序中的异常。
org.codehaus.jackson.JsonParseException:无效的UTF-8起始字节0xfc
我已经完成了所需的所有配置,以便在下一个链接之后将编码设置为grails中的UTF-8。
http://www.oodlestechnologies.com/blogs/Configuring-Grails-App-for-UTF8-Character-Encoding
How to get UTF-8 working in Java webapps?
系统规格:grails app(版本2.3.4),emebedded tomcat(版本7.0.47),Java 1.7.0_25,maven 3.1.1,SO Windows 7.
浏览器编码和本地文件编码也看起来像oka。 JVM也在使用-Dfile.encoding = UTF8
我已经没想到为什么会发生这种情况。
非常欢迎帮助。
Thnks。
答案 0 :(得分:1)
解决方案:
ParserRegistry.setDefaultCharset("UTF-8");
在行
之后将上一行添加到BootStrap.groovy def init = { servletContext ->