同样的项目在不同的服务器部署产生乱码的问题

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



自己的想法:
1.排除代码本身的问题
2.会不会是Nginx的配置问题
...全文
1585 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhah1122 2019-08-06
  • 打赏
  • 举报
回复
太感谢了! 我的ssh出现了一样的报错提醒,一开始都没发现1
I_AM_ROOT__ 2018-04-19
  • 打赏
  • 举报
回复
问题已经解决! 是我自己系统的问题 我使用的是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 ...的选项,把它去掉也能解决 ---- 具体细节就不在解释。 在解决问题的时候分析一定重于操作
木子0204 2018-04-18
  • 打赏
  • 举报
回复
我的第一感觉是你的数据库编码肯定是不一样的, 还有nginx配置或者安装那里的配置问题吧
I_AM_ROOT__ 2018-04-14
  • 打赏
  • 举报
回复
引用 1 楼 sandwichhmzh 的回复:
三个环境的数据库的编码都一样吗?
线上和测试数据库都配置都一样
oyljerry 2018-04-14
  • 打赏
  • 举报
回复
最好所有相关地方有编码设置的地方都设置成统一的编码
sandwichhmzh 2018-04-14
  • 打赏
  • 举报
回复
三个环境的数据库的编码都一样吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧