zoukankan      html  css  js  c++  java
  • [Jenkins]Console Output中文显示问号的问题解决

    ------------------------------------------------------

    如需转载,请注明出处。

    文章链接:https://www.cnblogs.com/dzblog/p/10342074.html

    ------------------------------------------------------

    问题

    一觉起来,发现控制台输出的中文是????。

    尝试解决

    参考了网上的解决方法,修改Jenkins全局属性,发现还是解决不了。

    查找原因

    经过几个小时的摸索,发现同一个job在不同的slave机器上表现不同。

    比如execute shell里只有一句话

    echo '中文'

    Slave1

    echo '??'

    Slave2

    echo $'中�226207'

    Slave3

    echo '中文'

    可以看出是因为Jenkins的原因,而是因为Slave1机器的某个设置,影响到了控制台的输出。

    解决

    1. 检查terminal所用shell

    ➜  ~ echo $SHELL
    /bin/zsh

    2. 在terminal里输入中文,尝试echo '中文'

    ➜  Home echo '<00e4><00b8><00ad><00e6><0096><0087>'
    中文

    发现无法正常显示。

    3. 在terminal里输入locale,查看

    ➜  ~ locale
    LANG=
    LC_COLLATE="C"
    LC_CTYPE="C"
    LC_MESSAGES="C"
    LC_MONETARY="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_ALL=

    发现LANG和LC_ALL均为空。

    4. 编辑 vim ~/.zshrc文件

    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8

    要使修改立即生效,需在终端输入 source ~/.zshrc

    5. 编辑 vim ~/.bash_profile文件

    export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8

    要使修改立即生效,需在终端输入 source ~/.bash_profile

    6. 重新打开Terminal,检查locale

    ➜  Home locale
    LANG="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_CTYPE="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_ALL="en_US.UTF-8"

    发现LANG和LC_ALL已经不为空了。

    7. 再次构建同一个Job,检查控制台输出。

    可以看出已经正常显示中文了,问题解决。

    cheers~

  • 相关阅读:
    这个命令可以看到你的cpu到底集合
    关于redis的主从、哨兵、集群(转)
    redis配置主从备份以及主备切换方案配置(转)
    redis主从配置及其java的调用(转)
    mongodb批量处理
    Java mongodb api疑问之MongoCollection与DBCollection
    JDK8日期处理API(转)
    Badboy + JMeter性能测试(转)
    Jmeter接口测试+压力测试(转)
    JMeter性能测试,完整入门篇(转)
  • 原文地址:https://www.cnblogs.com/dzblog/p/10342074.html
Copyright © 2011-2022 走看看