new String(value.getBytes (“iso8859-1“),“utf-8“)

  • tomcat容器默认采用了iso-8859-1的编码方法
  • 通过本为UTF-8编码却被tomcat用iso-8859-1解码的字进行恢复,
    其将解码后的字通过iso-8859-1反解码成二进制数组,再将该字节数组用UTF-8解码。
  • 最终被new String成字符串。
    原文链接:https://blog.csdn.net/qintian888/article/details/80452632
//如果是第二次转码会乱码?? 故加上条件二,判断当前字符是什么编码
if(StringUtils.isNotEmpty (patientName) && patientName.equals(new String(patientName.getBytes ("iso8859-1"), "iso8859-1"))){
		    patientName=new String(patientName.getBytes ("iso8859-1"),"utf-8");
		}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码主要是用于将服务器上的文件下载到客户端,以下是每一行代码的详细解释: ```java long fileLength = new File(downLoadPath).length(); ``` 获取文件的长度,即文件大小。 ```java response.setContentType("application/x-msdownload;"); ``` 设置响应头的 Content-Type,表示响应的内容类型为下载文件。 ```java response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1")); ``` 设置响应头的 Content-disposition,表示将文件作为附件下载,并指定文件名。 ```java response.setHeader("Content-Length", String.valueOf(fileLength)); ``` 设置响应头的 Content-Length,表示响应内容的长度为文件大小。 ```java bis = new BufferedInputStream(new FileInputStream(downLoadPath)); bos = new BufferedOutputStream(response.getOutputStream()); ``` 创建 BufferedInputStream 和 BufferedOutputStream 对象,分别用于读取文件和向浏览器发送响应。 ```java byte[] buff = new byte[2048]; int bytesRead; while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) { bos.write(buff, 0, bytesRead); } ``` 将文件内容写入响应输出流,每次读取 2048 字节。循环读取文件内容并写入输出流,直到文件结束。同时,每次读取的字节数可能小于 2048 字节,所以需要记录实际读取的字节数 bytesRead,并只写入 bytesRead 个字节。最终,通过输出流将文件内容发送到浏览器进行下载。如果出现异常,则打印异常信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值