您的位置:首页 > 编程语言 > Java开发

关于JAVA乱码问题的一则解决

2012-03-13 16:59 267 查看
1,问题描述

     在Windows下面开发了一个JAVA WEB项目,因为我其实对Java并不熟悉,这里面描述比较外行,这里记一下我解决中文乱码问题的方法。

2,方法

      在Windows下面,IDE用了系统的字符集,所以是GBK,从页面编码到数据库,到post数据都是GBK,在Win环境下确实是没有问题了,但是服务器是LINUX环境,所以有个移植的问题。

    我在LINUX下搭建环境后,页面中、英文显示没有问题,主要是提交数据后显示是乱码,经过检查,写入数据库中的数据就已经是乱码了,所以是页面提交编码的问题,我用
response.setContentType("text/html;charset=GBK");
request.setCharacterEncoding("GBK");
在前面添加如上语句后,并没有作用,jsp中用的   String title = new String(request.getParameter("title").getBytes("ISO-8859-1"),"GBK");

语句来编码,这条语句在WIN下面是正常的。
经过google一番后,发现有条提示,修改tomcat中的server.xml文件中
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="GBK"
redirectPort="8443" />
        把默认的UTF-8改为GBK编码,然后直接从文本框中取得参数,即把String title = new String(request.getParameter("title").getBytes("ISO-8859-1"),"GBK");语句修改为 String title= request.getParemeter("titile");重启tomcat,居然成功了!!

 

       解决了了上面的问题,但是在HTML显示的是乱码,可以发现应该是JSON编码的问题; JSON文件问题,在此项目中,需要程序写个JSON文件,并在HTML中通过<script>语句引入,在LINUX中生成文件编码默认用了UTF-8格式,我们可以通过file命令查看文件的编码,而页面是GBK编码的,所以产生了乱码,在<script >中设置charset属性为:<script charset="UTF-8">这样就能将JSON文件中的中文字符正确读入,剩下的解释就交给浏览器了。

       这是在本人的LINUX下测试成功的,但是正式生产服务器还是有点问题,经过测试,编码还是乱的,可是已经按照上面修改了配置?我在页面上又加入了
response.setContentType("text/html;charset=GBK");
request.setCharacterEncoding("GBK");

这两条语句,居然又成功了。。。。。

非常无语,我也不清楚具体的原因,先记录在这里把。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息