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创建的时候指定编码就好了,之后转码不见得有效果,况且你写的也不对。 --------------------编程问答--------------------
楼主是输出的文件名乱码,并非文件里内容乱码。 你指的字符集是给文件内容用的。 --------------------编程问答--------------------
这个嘛 应该不会吧,,编码问题?? --------------------编程问答-------------------- 看看linux有没有装中文字符集 若装好了的话 试下new String(("中文名.doc").getBytes("UTF-8"), "gbk") --------------------编程问答-------------------- 我碰到同样的问题,文件名输出到后台是正确的中文文件名,写到linux服务器上,
new String(("中文名.doc").getBytes("UTF-8"), "gbk")翻来倒去的转码得到的是各种乱码 --------------------编程问答-------------------- 这跟你linux 也有关系
把操作系统的编码改成utf-8
在统一代码的编码 --------------------编程问答-------------------- 敢问楼猪最后怎么解决的呢
补充:Java , Java EE