设为首页 收藏本站
查看: 852|回复: 0

[经验分享] 关于java 日文输出信息到 Jenkins Console Output 乱码问题

[复制链接]

尚未签到

发表于 2018-1-8 07:05:16 | 显示全部楼层 |阅读模式
  java 将从读取到的外部调用程序的带有日文字符的输出信息 输出到Jenkins 上的Console Output 上乱码。

现象分析:
  Jenkins 上可以将日文正常显示出来,但是读取外部程序的输出信息的日文却不能正常显示。

Java Console 输出
Jenkins Console Output 输出调用程序的输出信息
Jenkins Consloe Oputput 输出非调用程序的输出信息
正常
不正常
正常  更改了自己机器和日本机器Eclipse里的各种encoding的设置,改成UTF-8也是没有任何用处。

原因解释
  所以问题的关键还是在于读取外部程序输出信息的代码上。
  从网上看了好多关于Java编码的问题,最后找到问题的根源在于InputStreamReader 的编码问题。
  InputStreamReader是字节流通向字符流的桥梁,封裝了InputStream在里头, 它以较高级的方式,一次读取一个一个字符,以文本格式输入 / 输出,可以指定编码格式;
  它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
  每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:
  BufferedReader
  in = new BufferedReader(new InputStreamReader(System.in));
  BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。BufferedReader的最大特点就是缓冲区的设置。通常Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求,如果没有缓冲,则每次调用
  read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
  InputStreamReader最大的特点是可以指转换的定编码格式,这是其他类所不能的,从构造方法就可看出,一点在读取中文字符时非常有用。
  知道了问题所在,就可以改代码了

代码
  

                    try {  
BufferedReader br1
= new BufferedReader(new InputStreamReader(br,"UTF-8"));  
String line1 = null;
  

while ((line1 = br1.readLine()) != null) {  

if (line1 != null){  

logger.info("info: "+line1);  

}  
}
  
}
catch (IOException e) {  
e.printStackTrace();
  
}
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432779-1-1.html 上篇帖子: jenkins job Build History 不显示 下篇帖子: Jenkins权限控制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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