Java 中如何转换文件编码格式?

java 读一个文件,utf-16le 格式,里面都是手机号码

multipart 形参读进来之后

String line;
br = new BufferedReader(new FileReader(file));
while ((line = br.readLine()) != null) {
   。。。
   
   

发现 line 是数字和乱码相间的一个字符串

把文件在 linux 下用 vim 转换为 utf-8 格式就没问题

请问这种情况,如果用户上传的不是 utf-8 格式的文件,

譬如是这种 utf-16le 格式或者其他格式的

java 中如何转换文件编码格式?


我用了这种方案

            DataInputStream in = new DataInputStream(new FileInputStream(file));
    br= new BufferedReader(new InputStreamReader(in,"utf-8"));

可是不管用,依然乱码

阅读 4.7k
2 个回答

br= new BufferedReader(new InputStreamReader(in,"utf-8"));
你这是以utf-8的格式打开文件 而不是转成udf-8
你得以utf-16的格式打开 然后在以utf-8写

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题