bootstrap的fileinput上传文件乱码问题

今天使用bootstrap的fileinput上传txt文件,但是前台预览和后台inputStream都是乱码,大概就是这么个情况:
在这里插入图片描述
在网上看,基本都是引入语言文件、设置language:“zh”参数什么的,试了一下还是没有解决,然后在后台文件上传代码打了个断点,发现了猫腻:

	inputStream = file.getInputStream();
	set.add(txtOriginalFilename);
	wakeVisibleLight = new WakeVisibleLight();
	wakeVisibleLight.setvId(0);
	txtMsgMap = HdfsUtils.getConfigMsgMap(inputStream);
	// 根据txt信息对实体类赋值
	setWakeVisibleLightInfo(txtMsgMap, wakeVisibleLight);

txtMsgMap获取到的数据为乱码,然后进getConfigMsgMap的源码看一下:

	Map<String, String> map = new HashMap<String, String>(16);
	String resultTxtMsg = getStrFromInputSteam(fileInputStream);

发现调用了getStrFromInutSteam这个方法,点进去发现了问题:

	/**
	 * 
	 * @Method: getStrFromInputSteam
	 * @Description: (读取文件转换成String字符串)
	 * @param in InputStream流
	 * @return
	 * @throws Exception (参数描述) String (返回类型描述)
	 */
	public static String getStrFromInputSteam(InputStream in) throws Exception {
		BufferedReader bf = new BufferedReader(new InputStreamReader(in, "UTF-8"));
		// 最好在将字节流转换为字符流的时候 进行转码
		StringBuffer buffer = new StringBuffer();
		String line = "";
		while ((line = bf.readLine()) != null) {
			buffer.append(line);
			buffer.append("/t");
		}
		return buffer.toString();
	}

转换字节流的时候是UTF-8编码,检查一下txt文件编码格式,果然是别的格式,果断修改为utf-8,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值