关于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文件中
解决了了上面的问题,但是在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");
这两条语句,居然又成功了。。。。。
非常无语,我也不清楚具体的原因,先记录在这里把。
在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");
这两条语句,居然又成功了。。。。。
非常无语,我也不清楚具体的原因,先记录在这里把。
相关文章推荐
- 文《关于c++与java中文乱码问题分析与解决》中一个bug分析
- 关于java串口通信 接受显示 乱码的字符转换问题解决方案
- 关于c++与java中文乱码问题分析与解决
- 关于java web中get方法的解决中文乱码问题
- 关于eclipse解决java前台往后台传值乱码问题
- 关于导入Java项目乱码问题解决
- 关于java web开发中乱码问题的解决思路
- 关于JAVA连接SQL2005的一则小问题的解决过程
- 关于JAVA代码添加到mysql数据库乱码??的问题解决方式
- 关于Spring RestTemplate乱码问题解决
- Java关于中文乱码问题的解决方案与经验
- 关于SSM @ResponseBody 返回数据中文乱码解决问题
- 关于Tomcat/Android/JAVA交互时中文传输乱码的解决方法
- 复制Java源文件到MyEclipse后乱码问题怎么解决?
- 关于java文件下载文件名乱码问题解决方案
- 解决java.net.URLDecoder.encode与EncodeURI乱码问题
- Java程序中遇到的乱码问题以及解决方法
- [Java Web]Struts2解决中文乱码问题
- Java中解决中文乱码问题的方法