Tigo从TFS读取文件时,发现有乱码,现象很奇怪

1、在测试环境,时而正常,时而乱码

2、在线上环境,永远是乱码。

最终发现原因是采用Httpclient访问TFS时,用了

String html = org.apache.http.util.EntityUtils.toString(entity, defaultCharset)

EntityUtils.toString的具体实现如下:

public static String toString(final HttpEntity entity, final Charset defaultCharset) throws IOException, ParseException {……ContentType contentType = ContentType.getOrDefault(entity);Charset charset = contentType.getCharset();if (charset == null) {charset = defaultCharset;}if (charset == null) {charset = HTTP.DEF_CONTENT_CHARSET;}Reader reader = new InputStreamReader(instream, charset);……
}

也就是说EntityUtils中真正使用的编码是不一定是default,而有可能是CharsetContentType.getOrDefault().getCharset(),该值由TFS服务器编码决定。那么解决方法也很简单,直接弃用EntityUtils.toString,使用以下方法:

BufferedReader reader = new BufferedReader(new InputStreamReader(entity, defaultCharset));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {sb.append(line).append("\r\n");
}
String html = sb.toString();

Java中文乱码——7、Tigo文件下载乱码相关推荐

  1. java ftp 下载慢_Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题

    废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String usern ...

  2. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)-–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  3. cmd运行Java中文乱码,无法加载主类Error: Could not find or load main class

    网上说了好多方法,只说我用了的 cmd运行Java中文乱码 设置环境变量--系统环境变量 添加条目:JAVA_TOOL_OPTIONS 值:-Dfile.encoding=UTF-8 -Duser.l ...

  4. J2EE (六) 详解 java 中文乱码

    简介 在Java项目的开发过程中,经常会出现中文乱码的情况,这也是一直是困扰大家的一个问题,很多的程序员都会经常遇到这个问题. 有时捣鼓调试半天也摸不着头绪,不知道究竟哪里出了问题,那是你还不清楚出现 ...

  5. java压缩----使用sun JDK压缩--中文的文件名会是乱码

    经测试,文件名为中文的压缩完为乱码,测试过.txt 的文件类型,中文内容可以正常显示. 所以这种方案不可行. import java.io.File; import java.io.IOExcepti ...

  6. 分析java中文乱码的原因

    在java开发中都能遇到java中文乱码的情况,怎样才能够恰当地选择汉字编码方式并正确地处理汉字的编码呢?希望通过下面的总结的java中文乱码解决方法对遇到过此类问题的朋友有所帮助. 首先,要想解决j ...

  7. java解析xml中文字符乱码_各种Java中文乱码的处理方法

    对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是: String s2 = new String(s1.getBytes("ISO-8859-1" ...

  8. Java中文乱码问题(转)

    解决JSP中文乱码问题 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考.首先了解一下Java中文问题的由来: Ja ...

  9. Java 中文乱码问题

    一.中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理.随着计算机的发展,为了适应世界其它民族的语言(当然包括我们的汉 ...

最新文章

  1. java初始化一个链表_Java 链表(LinkNode)的简单操作:初始化,遍历,插入,删除等...
  2. 2. sed执行的流程
  3. 从0到1建立一张评分卡之可视化分析
  4. url携带的参数获取并处理demo
  5. 抖音txt表白html,抖音txt弹窗表白整蛊怎么弄 抖音表白撩妹套路弹窗设置教程
  6. WinForm中使用AnyCAD三维控件 の 初始化
  7. 去掉 edittext 长按全选_开封消毒湿巾全选
  8. 大数据之-Hadoop3.x_MapReduce_区内排序案例---大数据之hadoop3.x工作笔记0117
  9. 保护眼睛的电脑设置_专为长期玩电脑的你准备的3种护眼模式,你学到了吗?...
  10. 软件测试第三章课后习题
  11. Authentication—身份验证流程
  12. Java优秀员工自我评价_优秀员工自我评价
  13. UART通信协议知识入门
  14. 如何选择一款合适的福禄克数字万用表?FLUKE
  15. Atcoder 4244 AtCoder Express 2 暴力
  16. MODBUS通信协议代码
  17. 英特尔的指令集体系结构_INTEL 体系结构 MMX™ 技术开发者手册
  18. 现在完成时、过去完成时、完成进行时
  19. 成功在于实践作文_成功源于行动作文800字
  20. 存储之Block-MultiQueue机制详解(二)

热门文章

  1. Java什么叫面向对象
  2. 三生万物,智汇云舟眼中的数字孪生
  3. h5小游戏--迷宫功能设计(HTML+JavaScript + canvas)
  4. 称重仪表显示ol怎么解决_衡安称重显示仪表的使用和维护方法
  5. PC端网页特效二:mouseenter 和 mouseover 的区别、动画函数封装
  6. 利用ucloud自带工具管理对象存储
  7. 从这些相声艺人身上,我们能学到什么?
  8. ArcGIS用Field Calculator 批量处理shp属性,添加标准图幅号(并且标记跨图幅图斑)
  9. mac电脑如果感觉开机要30秒左右可以试看下面方法
  10. 赛程更新| 2022微软与英特尔黑客松大赛火热报名中