吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3964|回复: 7
收起左侧

[求助] (java)有什么办法把MultipartFile上传的文件转为utf-8的编码吗

[复制链接]
三木猿 发表于 2020-10-29 14:53
文件是csv格式的,这个方法上传的文件,其他公司写的算法会用到,但是他们要求传来的文件必须是utf-8编码的,否则会报错,有什么办法能把用户上传的csv文件的编码转换为utf-8吗。
[Java] 纯文本查看 复制代码
public void uploadCsv(MultipartFile file, String path, String csvName) throws IOException {
        String fileName = file.getOriginalFilename();
        File dest = new File(new File(path+"/data/input").getAbsolutePath()+ "/" + fileName);
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        if(!dest.exists()){
            dest.createNewFile();
        }
        file.transferTo(dest); // 保存文件
    }

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

绝世好铲 发表于 2020-10-29 15:03
文件上传到后台,读取内容,判断编码,然后在转码 保存文件。
判断编码 可以参考这个  https://www.iteye.com/blog/panyongzheng-1849666
Vvvvvoid 发表于 2020-10-29 15:06
bytes = 流.getBytes(' 源编码格式  ')

String out = new String( bytes , “utf-8”  )
绝世好铲 发表于 2020-10-29 15:08
Vvvvvoid 发表于 2020-10-29 15:06
bytes = 流.getBytes(' 源编码格式  ')

String out = new String( bytes , “utf-8”  )

主要不知道客户的 原内容编码, 所以还是要判断一下
Titanic 发表于 2020-10-29 15:40
建议学一下 文件工具:Tika,获取文件真实类型、编码、内容
Titanic 发表于 2020-10-29 15:41
[Java] 纯文本查看 复制代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.tika.Tika;
import org.apache.tika.detect.AutoDetectReader;
import org.apache.tika.exception.TikaException;
import org.apache.tika.language.LanguageIdentifier;

public class Test {
    public static void main(String args[]) throws FileNotFoundException, IOException, TikaException{
        String file="E:\\2013.xls";
        File f = new File(file);  
        Tika tika = new Tika();  //创建一个Tika类    
        //利用Tika的detect方法检测文件的实际类型
        System.out.println("filetype:"+tika.detect(file));
        //利用Tika的parseToString()方法读取文件的文本内容
        System.out.println("content:"+tika.parseToString(f));
        //利用Tika的AutoDetectReader类检测文件的编码格式
        AutoDetectReader dr = new AutoDetectReader(new FileInputStream(file));
        System.out.println("charset:"+dr.getCharset().name());
        //利用Tika的LanguIdentifier类检测字符串的语言
        LanguageIdentifier identifier = new LanguageIdentifier("this is English");
        System.out.println("language:"+identifier.getLanguage());
    }
}
 楼主| 三木猿 发表于 2020-10-29 16:33
Titanic 发表于 2020-10-29 15:41
[mw_shl_code=java,true]import java.io.File;
import java.io.FileInputStream;
import java.io.FileNot ...

很强,很方便
a767421378 发表于 2020-10-29 18:00
Titanic 发表于 2020-10-29 15:41
[mw_shl_code=java,true]import java.io.File;
import java.io.FileInputStream;
import java.io.FileNot ...

学习了 谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表