Skip to content

Java 调用.NET Service 接口返回 Json 中文乱码

.NET 接口返回的是实体,实际接收的 Json 结构如下:

json
{
    "d": {
        "orderGuid": "",
        "status": false,
        "msg": "订单当前不能申请取消,请联系管理员"
    }
}

在本机调试正常,但是 Java 程序发布到服务器上取到的中文中间有时会有乱码,而且是 msg 属性的最后一个字符乱码。打印出来显示最后一个字符为 ??

其中 msg 字段的值尝试使用 utf-8 encode 后再返回,仍然有问题。


解决方案:增加环境变量( JAVA_TOOL_OPTIONS

  • 变量名:JAVA_TOOL_OPTIONS
  • 变量值:-Dfile.encoding=UTF-8