生成的文件是乱码如何解决

「已注销」 2010-10-11 01:41:17
File foder = new File(dir);
FileWriter fw = new FileWriter(dir + "/" + fileName);
System.out.println("〇〇〇 fw=" + fw);
System.out.println("〇〇〇 csvStringBuffer=" + csvStringBuffer.toString());
fw.write(csvStringBuffer.toString());


System.out.println 打印出来的日文汉字都可以正常显示,
为什么生成文件之后就是乱码呢
...全文
186 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2010-10-13
  • 打赏
  • 举报
回复
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file1));
if (csvStringBuffer != null && !StringUtil.isEmpty(csvStringBuffer.toString())) {
out.write(csvStringBuffer.toString().getBytes());
}

上面的生成文件和下面的生成文件有什么区别呢
File file1 = new File(dir + "/" + fileName);
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file1), "Shift-JIS");
if (csvStringBuffer != null && !StringUtil.isEmpty(csvStringBuffer.toString())) {
out.write(csvStringBuffer.toString());
}

xrjkgd 2010-10-12
  • 打赏
  • 举报
回复
学习。。。。。
「已注销」 2010-10-12
  • 打赏
  • 举报
回复
如何能知道这样的一个包去哪里下载
import org.koala.internals.SSH;
Marty束 2010-10-12
  • 打赏
  • 举报
回复
String(*****.getBytes("iso8859-1"),"UTF-8")
解决所有的乱码 问题
「已注销」 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 villagehead 的回复:]
引用 8 楼 apchy 的回复:

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8");

OutputStreamWriter这个类可以指定文件编码,和写入的对上


被抢先了

good luck
[/Quote]

文件生成的时候,什么字符集也没有指定,在UNIX下查看不是乱码。
而当用
SCPClient client = new SCPClient(conn);
client.put(local,remoteDir);
这个把UNIX下面的临时文件传送到服务器(linux)上之后,这个文件里的内容就是乱码了


如果像上面的生成文件的时候就指定UTF-8 则生成的这个文件在UNIX下查看就是乱码了。就更不用说传送之后的文件了
「已注销」 2010-10-12
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20101012/10/4d04e891-a0ac-4fd2-b1b8-29cbb6c32dbf.html
http://topic.csdn.net/u/20101012/10/4d04e891-a0ac-4fd2-b1b8-29cbb6c32dbf.html

OK 试验下的,谢谢
villagehead 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 apchy 的回复:]

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8");

OutputStreamWriter这个类可以指定文件编码,和写入的对上
[/Quote]

被抢先了

good luck
apchy 2010-10-12
  • 打赏
  • 举报
回复
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8");

OutputStreamWriter这个类可以指定文件编码,和写入的对上
bluemouse_2008 2010-10-12
  • 打赏
  • 举报
回复
统一所有编码格式(工程、页面、过滤器、UNIX下数据库的编码格式)。
朱超ZhuChao.Tech 2010-10-12
  • 打赏
  • 举报
回复
国际化的问题
你把IE的语言改成日语看看
「已注销」 2010-10-12
  • 打赏
  • 举报
回复
现在主要是两台机器 ,本地UNIX和 服务器LINUX的字符集不一致,不知道这样传送文件的时候如何让字符集统一,或是如何转化呢!
铁匠梁 2010-10-11
  • 打赏
  • 举报
回复
写文件需要指定字符集,读文件也要指定字符集,如果操作系统不支持这种字符集那就没办法了。
ruru521elva 2010-10-11
  • 打赏
  • 举报
回复
貌似也不会 坐坐 沙发 重新安装
「已注销」 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 foolishdault 的回复:]
乱码的根源是 写文件的编码 和 读取时的不一致引起。
[/Quote]

文件在生成的时候也没有指定什么类型啊
「已注销」 2010-10-11
  • 打赏
  • 举报
回复
我再本地WINDOW系统下是能够正常显示的,不乱码。
可把程序运行在UNIX下面就乱码了。生成的文件名以及文件中的内容,是日文汉字的都是乱码

hongboyongqi 2010-10-11
  • 打赏
  • 举报
回复
文件是什么类型?IDE中可以正常显示的字体,文本中不一定可以正常显示
铁匠梁 2010-10-11
  • 打赏
  • 举报
回复
乱码的根源是 写文件的编码 和 读取时的不一致引起。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧