当前位置:编程学习 > JAVA >>

linux下JAVA生成文件,中文名乱码

BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'));

在windows中正常,但是在linux中文件名的中文部分都变成??

已经试过多种转码,比如new String(('中文名.doc').getBytes('UTF-8'), 'UTF-8');

请问怎么解决,搞了很久了,谢谢 --------------------编程问答-------------------- 大神指导 --------------------编程问答-------------------- 你的文件名哪里取到的?? 取到的文件名是什么字符集你知道吗?

下面2个分别试一下吧。
1)
new String(("中文名.doc").getBytes("UTF-8"), System.getProperty("sun.jnu.encoding"));
2)
new String(("中文名.doc").getBytes("GBK"), System.getProperty("sun.jnu.encoding"));

--------------------编程问答-------------------- new String(('中文名.doc').getBytes('UTF-8'), 'UTF-8');
改成
new String(('中文名.doc').getBytes(这里面的格式用这句代码所在。java文件的默认格式), 这里的格式用传过来的。java文件或者页面的默认格式或者自己设置的格式);
--------------------编程问答-------------------- new String(('中文名.doc').getBytes('UTF-8'), 'UTF-8');
改成
new String(('中文名.doc').getBytes(这里面的格式用这句代码所在。java文件的默认格式), 这里的格式用传过来的。java文件或者页面的默认格式或者自己设置的格式);
--------------------编程问答-------------------- BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'));
改成
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'),"UTF-8");
在out创建的时候指定编码就好了,之后转码不见得有效果,况且你写的也不对。 --------------------编程问答-------------------- BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'));
改成
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'),"UTF-8");
在out创建的时候指定编码就好了,之后转码不见得有效果,况且你写的也不对。 --------------------编程问答--------------------
引用 6 楼  的回复:
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'));
改成
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'),"UTF-8");
在out创建的时候指定编码就……

楼主是输出的文件名乱码,并非文件里内容乱码。 你指的字符集是给文件内容用的。 --------------------编程问答--------------------
引用 7 楼  的回复:
引用 6 楼  的回复:
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'));
改成
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream('中文名.doc'),"UTF-8");
……


这个嘛 应该不会吧,,编码问题?? --------------------编程问答-------------------- 看看linux有没有装中文字符集  若装好了的话 试下new String(("中文名.doc").getBytes("UTF-8"), "gbk") --------------------编程问答-------------------- 我碰到同样的问题,文件名输出到后台是正确的中文文件名,写到linux服务器上,
new String(("中文名.doc").getBytes("UTF-8"), "gbk")翻来倒去的转码得到的是各种乱码 --------------------编程问答-------------------- 这跟你linux 也有关系
把操作系统的编码改成utf-8
在统一代码的编码 --------------------编程问答-------------------- 敢问楼猪最后怎么解决的呢
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,