java io 读取输出文件中文乱码问题

java io 读取输出文件中文乱码问题。windows系统没有问题。服务器是linux,输出就是乱码。
[b]问题补充:[/b]
源码,大家看下
[b]问题补充:[/b]
现实页面!!
[b]问题补充:[/b]
...............
[b]问题补充:[/b]
所有方法都试了,还是不行 :cry:
[b]问题补充:[/b]
问题解决了,谢谢各位。
闭着眼来吧,谁也别怪我啊
抽到谁是谁

13个回答

解决方法应该是比较简单的

1.源字符串编码
2.传输过程中的编码
3.结果字符串编码

只要这三种做到一致,就不会有问题。
在从流中读数据时,最好使用byte数组,这样的好处是可以支持任何编码格式。

看看你Linux服务器编码是什么,包含中文字符集么

windows系统一般都是中文版本,当然默认字符就是gb2312,中文当然不会乱码
所以,读取文件的时候最好指定字符编码

InputStreamReader inread = new InputStreamReader(new FileInputStream(fileName),encoding);

InputStreamReader inread = new InputStreamReader(new FileInputStream(fileName),"GBK");

编码问题,现在通用的编码格式是utf-8,java开发最常用的是utf8,so。。I believe it should be :
InputStreamReader inread = new InputStreamReader(new FileInputStream(fileName),"UTF-8");

把读出来的str重新转换一次
str=new String(str.getBytes("iso-8859-1"));

windows下行,linux下不行,你肯定是linux服务器的默认编码没有设置成你工程对应的编码了,应该不关你程序里面的事情了,我看你只要修改linux服务器编码就能解决问题的,我以前部署的时候也遇到过,程序里面是统一管理编码过滤的,应该能确定linux的编码有问题。关于如何修改linux编码,baidu吧,关键字linux 默认编码。

源码在哪????

把它改成用InputStreamReader inread = new InputStreamReader(new FileInputStream(fileName),"GBK");

char bytes[] = new char[1024];

在execute方法里
最前面加上
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encodin);
你调试下你保存内容时是不是乱码
应该找出乱码出现的第一位置

共13条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐