1.项目代码一样,使用java、springboot,使用jar包启动,没有使用容器
2.在生产服务器上部署没有出现乱码问题
3.在测试服务器上出现乱码问题
4.在本地部署没有出现乱码问题
5.在日志中查看,乱码从数据库获取到项目中时就存在
6.生产、测试、本地部署的代码都是一模一样,配置也一样
7.生产服务器和测试服务器都是通过这个过程处理请求:
      负载均衡---》Nginx服务器(三台,配置也一样)----》生产/测试服务器
8.原来项目是部署在jetty容器里的,原来没有出现乱码问题,自从7天前出现了乱码问题,然后昨天把项目从jetty里拿到了外部以jar包运行后发现,(以上操作在生产服务器和测试服务器上都执行了)无论生产还是测试服务器都是没有乱码,一天后在在测试服务器上重启了这个项目,就出现了乱码
-----
乱码如下自己的想法:
1.排除代码本身的问题
2.会不会是Nginx的配置问题

解决方案 »

  1.   

    我的第一感觉是你的数据库编码肯定是不一样的,
    还有nginx配置或者安装那里的配置问题吧
      

  2.   

    问题已经解决!
    是我自己系统的问题
    我使用的是mac capitan 10.11,同事使用的都是最新的mac系统
    导致了只要是我使用ssh连服务器然后执行了容器的重启操作,都会出现乱码。---
    导致乱码的较根本原因就是ssh在登录远程服务器的时候吧本地的一些环境变量带了上去,导致ssh发出警告:
    -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
    以前没注意,以为没大碍,结果导致了当然,带不带本地的环境变量到服务器,这个设置在ssh配置文件里面是有的,是这个设置,存在于ssh配置文件里:
    SendEnv LANG LC_*
    只要把这个配置注释掉,那么在此登录就可以成功
    或者在登录中断,terminal或者iterm的设置中有一个叫 
    set locale environment/variables ...的选项,把它去掉也能解决
    ----
    具体细节就不在解释。
    在解决问题的时候分析一定重于操作
      

  3.   

    太感谢了!  我的ssh出现了一样的报错提醒,一开始都没发现1