2 dear tan Dear_Tan 于 2017.01.16 11:39 提问

请帮助,java web编码解码问题

我们系统对接了一个别的系统,我们需要去他们系统的数据,在我本地测试的时候,什么问题都没有正常,但是发布到Linux的时候,在页面显示查询出来的数据就乱码了.中文全都变成这个样子了,��������������������,但是我本地又没错,没法调戏,哪位大兄弟知道这个该怎么解决呢?多谢

4个回答

engchina
engchina   Rxr 2017.01.16 11:53

1,在你的页面里面写上写固定的中文文字,看看是否乱码?
如果有乱码,看看画面显示的Unicode是否正确?

2,如果无乱码,在你连接DB语句前面把下面这句代码追加进去调试?
(先在本地试下可用不可用)

 Locale.setDefault(Locale.CHINA);
engchina
engchina 回复时光且慢i: 根据你的信息,感觉java通过接口取得的数据就是乱码。 确认下你的linux的LANG设置,echo $LANG 。 关于更改LANG设置,可以参考这个URL:http://jingyan.baidu.com/article/ab69b270de8b4f2ca7189f1d.html 。 如果你不想改Linux系统设置,可以修改你启动中间件(jboss?web logic?tomcat?)的shell的LANG。 如果你连接的是oracle数据库,最好在你启动中间件的shell里追加NLS_LANG的设置。(由于对你的问题需要通过一些猜想,所以答案仅供参考)。希望你的问题尽快解决。
11 个月之前 回复
Dear_Tan
Dear_Tan 谢谢你的回答,我是调用别的系统的接口查询的数据,所以没法在DB语句前加那句代码,页面上也已经写了固定的UTF-8编码格式,在接口调用成功后,我尝试不转换编码格式直接将数据存入数据库,结果存入数据库的数据也是乱码.
11 个月之前 回复
zhangpan_soft
zhangpan_soft   2017.01.16 19:02

如果用的是Struts,默认是utf-8编码,jsp页面除了contentType设置下,还要设置下pageEncoding,应该就不会乱码了

zhangpan_soft
zhangpan_soft   2017.01.16 19:08

jdbc.url=jdbc:mysql://ip地址:3306/数据库?useUnicode\=true&characterEncoding\=utf8

qq_24972061
qq_24972061   2017.01.17 08:26

和服务器上无关,是你传入数据的时候已经是乱码,看你怎么传数据的,有无问题。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!