Rest客户端虐待变音符号

时间:2016-04-19 08:14:23

标签: rest grails tomcat7

我使用rest:0.8将我的主Grails项目连接到另一个Grails项目,该项目使用以下代码行作为报告生成器:

Map<String, String> adminConfigService = [
    webURL: "http://192.168.20.21:8080/oracle-report-service/generate",
    ...
]

Map params = [
    ...
    name: "Iñigo",
    ...
]

withHttp(uri: adminConfigService.webURL) {
    html = get(query: params)
}

然后接收REST客户端将处理该数据。在我的本地机器上运行这两个项目工作正常。虽然当我将报告生成器的war文件部署到我们的tomcat服务器时,它会将字母"ñ"转换为"├â┬æ",因此名称"Iñigo"被视为{{1} }}

由于Report Generator项目在我的本地计算机上运行时工作正常,这是否意味着我需要更改Tomcat服务器上的一些"I├â┬æigo"文件?我需要更改哪个设置文件?

1 个答案:

答案 0 :(得分:1)

好像是编码问题。

  1. 检查Config.groovy
  2.   

    grails.converters.encoding =“UTF-8”

    1. 检查文件对使用rest的控制器和服务的编码:0.8。
    2. 检查tomcat的server.xml中的URIEncoding(必须是UTF-8)。 还尝试设置useBodyEncodingForURI="true"(在连接器中,如URIEncoding参数)。
    3. 您是否将此数据保存到数据库中?如果是这样,请检查您的DataSource.groovy网址参数:
    4.   

      url =“jdbc:mysql://127.0.0.1:3306 / dbname? characterEncoding = utf8

      还要检查数据库中表和字段的编码和校对。