java如何实现任意编码文件转UTF8

wsadqx 2013-07-27 02:00:18
小弟新手。。。现在有个任务就需要用java实现将文件转码成UTF8编码。。。文件的类型不确实。。。
要转的类型好像有 "EBCDIC cp937" "GBK" "BIG5" 等。。。
想请教一下 大概该怎么实现比较好。。。主要是想知道 怎么准确判断文件是什么编码格式的。。。
这个问题到底该怎么正确转成UTF8呢。。。大家帮帮忙。。。先谢谢了!
...全文
14057 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cangdizhuo20 2016-04-15
  • 打赏
  • 举报
回复
2楼是对的勒
小思姓尹 2015-11-24
  • 打赏
  • 举报
回复
使用java进行文件编码转换 这个工具类可以实现
百度2030 2015-01-30
  • 打赏
  • 举报
回复
public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("F:\\test\\io\\1.txt")),"gbk")); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("F:\\test\\io\\2.txt")),"utf-8")); int ch = 0; while((ch=br.read()) != -1){ bw.write(ch); } bw.flush(); br.close(); bw.close(); } 粗略写了下
SkyJS 2015-01-22
  • 打赏
  • 举报
回复
楼主可以贴出你解决方案的代码看看么。我现在也有个需求要读取windows下的文件保存在utf-8的数据库clob字段中
wsadqx 2013-07-30
  • 打赏
  • 举报
回复
感谢大家的帮助。。。我的问题 自己解决了 最终确定了 只有可能三种编码方式 。。。我一一判断 转码成功了。。。 但是现在出现别一个问题。。。因为转码是给Unix用的。。转码后在Unix上看到的每行都会有个"^M" 我知道这个是Unix的换行结束符。。我想知道怎么避免我的程序转码后在Unix上查看正确并不会出现这个"^M" 需要在我的原程序 上修改些什么。。。
oh_Maxy 2013-07-28
  • 打赏
  • 举报
回复
一个系统应该是定下来的,编码格式。从前台到后台保持统一即可。 转换的方法就像1L和2L讲的,是这样的,但是如果项目的编码格式不是UTF-8,或者文件内容本身就不是UTF-8写进去的,强转为UTF-8的结果,还是乱码的。 LZ可以试试在windows下读取一个txt文档(包含中文字符,如果是中文操作系统,默认会是GBK格式的),然后将读取的字符串转成UTF-8,然后控制台打印下看看,会是乱码的。
齐岳 2013-07-28
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
判断编码格式,都是先把文件转为字节数组,然后根据第一,第二,第三数组的值判断的。
  • 打赏
  • 举报
回复
即使可以探测编码 效率也很有影响
huntor 2013-07-27
  • 打赏
  • 举报
回复
wsadqx 2013-07-27
  • 打赏
  • 举报
回复
jsjszg 说得对。。。 new String(input.getBytes,"UTF-8");这个是会不正确的 因为获取到的就不对 转码 导致转码也不会正确。。。
末日哥 2013-07-27
  • 打赏
  • 举报
回复
先读取文件,然后 Writer w = new OutputStreamWriter(new FileOutputStream(destFileName), "utf-8");
失落夏天 2013-07-27
  • 打赏
  • 举报
回复
input String str=new String(input.getBytes,"UTF-8");
jsjszg 2013-07-27
  • 打赏
  • 举报
回复
首先要能检测出文件的编码格式,然后才能读取出来,再转换成其他格式。 问题就是在于,怎么判断文件的编码格式是个困难。

62,614

社区成员

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

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