日期:2014-05-18  浏览次数:20804 次

大家帮帮忙。编码问题。弄老长时间了。自己不会就是解决不了,在线等=======
从对方服务器上获得的编码是utf-8的,linux服务器是iso8859-1的,但我从request。getParameter,获得对方数据写入文件中
我是new String(username.getBytes("utf-8"),"iso8859-1");转码写入文件的。结果是乱码?怎么回事啊?格式:脤脝脙么
高手帮忙解决一下啊。谢谢啦。。
我弄老长时间了就是不行。都崩溃了

------解决方案--------------------
哪一步出先乱码 是得到数据出现的乱码?
------解决方案--------------------
这个,应该是数据的编码问题,最好在连接数据库的url上想想办法,或者写个转换类(这经常有问题)。还有,要看数据库是什么。
------解决方案--------------------
new String(username.getBytes("utf-8"),"iso8859-1")
你这句的意思是
1 username通过utf-8边编码成二进制
2 再用iso8859-1来解码成字符串

但是iso8859-1是不支持中文的,所以这种方式肯定是乱码,应该是这样吧
new String(username.getBytes("iso8859-1"),"utf-8")
------解决方案--------------------
在页面中加入request.setCharacterEncoding("utf-8");试试
------解决方案--------------------
中文乱码问题:应该说所有的情况都碰到了吧,解决也是曲折的,经过摸索,总结如下: 

1、所有页面都用UTF-8。 
2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 
3、javascript脚本里用encodeURI(str)。 
4、适当的时候,在jsp里用java.net.URLDecoder.decode(request.getParameter("str"),"UTF-8")。 
5、最容易忽略的是使用"":value=" <%=paraFiles%>",一定要有引号。 
6、new String(content.getBytes("ISO-8859-1"), "GBK");
------解决方案--------------------
new String(username.getBytes("iso8859-1"),"utf-8")
这样试一下吧;
如果不行的话,应该在对方服务器上转成iso8859-1后,再传过来吧
------解决方案--------------------
在web.xml了加个过滤器过滤下字符编码。