[已无效]Azure上部署的java app在向第三方服务传送中文时出现乱码

 https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-service-web-java-qa-solve-messy-code-during-sending-chinese-characters-to-third-party-services 

----------------------------------------------分割线--------------------------------------------------------------------------

部署在Azure 上的Web APP应用在向第三方传送中文字符串时,第三方服务接受到的是类似于??之类的乱码,而本地运行发送是正常的

这个是由于APP Service 环境的默认编码为GBK,在向第三方发送数据时要做默认的转码工作,即执行new String(”您要传送的字符串”.getBytes(),”UTF-8”),而getBytes方法如果没有参数的话会使用系统默认的编码方式编码,由于gbk编码和utf-8编码方式不同,这个是个大坑,具体的大家可以百度一下gbk转utf-8编码,所以在转换之后会出现乱码的现象。

,解决方法是改变jvm默认的编码方式(改变系统的默认编码方式也可以,不过Azure上不允许改变系统默认的编码方式),在site/wwwroot文件夹下创建web.config文件(如果已经有请直接修改),添加以下内容:


  
    
      
    
    
      
        
      
    
  

最新更新:目前Azure Web APP环境已默认修改成UTF-8编码,该文档失效。不过仍然可以通过该方法修改jvm的编码方式。

你可能感兴趣的:([已无效]Azure上部署的java app在向第三方服务传送中文时出现乱码)