免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4551 | 回复: 0
打印 上一主题 下一主题

【求助】Linux下生成文件名的时候乱码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-11 11:27 |只看该作者 |倒序浏览
Linux下生成文件名的时候乱码

编译和执行的时候已经加了编码参数,如下:
$JAVA_HOME/bin/javac -encoding GBK CodeTest.java
$JAVA_HOME/bin/java -Dfile.encoding=GBK CodeTest

LANG=en_US.UTF-8       乱码
LANG=en_US                 正常

程序处理的代码块如下:

String testFileName = “测试文件名.txt”;
String testFileBody  = “测试内容n测试内容n测试内容n”;
String testStrName = new String(testFileName .getBytes("GBK"), "8859_1");

OutputStreamWriter out =  new OutputStreamWriter(new FileOutputStream(testStrName), "GBK"));
OutputStreamWriter.write(testFileBody);
out.close();


得到的结果就是设定LANG=en_US.UTF-8时,文件名乱码文件内容正常,设定LANG=en_US是,文件名和内容都正常。

请教高手解答JAVA输出时候的编码方式,还有一点说明, 用jdk1.4的时候,LANG设置两个都正常,可是用jdk1.6的时候就发生以上的现象。

补充一点,如果是LANG=en_US.UTF-8, 转码代码用的是
String testStrName = new String(testFileName .getBytes("GBK"), "UTF-8");

[ 本帖最后由 shilinn 于 2009-3-11 11:34 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP