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

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");
这两条语句,居然又成功了。。。。。


非常无语,我也不清楚具体的原因,先记录在这里把。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值