1.现象:预发布海外版XXX后台管理中文显示乱码,数据库中文正常,显示到页面后乱码,从页面插入数据库也是乱码。
2.查找问题:
1.先从最基本的查看:页面编码方式、server编码方式、数据库、数据表、属性字段编码方式都是utf8;
2.深入到传输数据层面:前端传输到server(tomcat),server传输到数据库(jdbc连接路径编码方式,mysql 属性 default-character-set character_set_server )编码方式也都为utf8;
上边两种都没问题的话,已经能解决99.99%的乱码问题,但是我们的问题还是没有解决。
3.在预发布环境远程调试,发现数据是在server向数据库传输的过程中出现的乱码。
3.解决思路:虽然找到了问题出在了哪一步,但是该设置的编码都设置了,实在想不出是哪里的问题。再次仔细排查server传输到数据库的编码设置,
猜想可能是这个转义符(&)的问题,试着将 amp; 去掉,果然好了。
4.解决:虽然解决了问题,但是根本原因还不知道,只能猜测是某些系统对(&)不识别,因为在 Linux CentOS 系统下没问题,在有些Ubuntu下也没问题,网上也没有搜到有用的信息。