最近参与公司移动端的开发,后台用pc端的服务,前端用公司封装的tinyBuild开发,相当于h5嵌入方式开发移动App,一套类h5的代码可以生成安卓和ios两个平台的应用。
首先交代一下背景,后台代码以xml报文格式返回,前端接收后将xml报文转成json来读取数据。Servlet中设置的字符集为UTF-8,前端也设置了字符集为UTF-8,如下图所示:
这样的背景下,在安卓端一直运行都没有问题,但是ios端的中文都乱码了,于是就有了下面的过程。
- 初步猜测前端的这条js对ios无效,后找研发tinyBuild的同事证实是有效的,排除。
- 查看系统JVM参数-Dfile.encoding=UTF-8,没有问题。于是尝试修改jvm参数为GBK,-Dfile.encoding=GBK,看看有什么效果,并从中看看能不能有什么收获。(这种通过逆向思维和踩雷的方式排查问题的思路我不知道叫