解决方案
JDK引用的设置
Java引用参数添加"-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
将上面参数添加到Catalina.sh中JAVA_OPTS变量中,重启Tomcat,OK了。
1.设置Encoding。在appender中增加一行<Encoding>UTF-8</Encoding>,但是在启动中报错,说是不能识别Encoding元素。有人说Encoding在0.9.22以后版本中已经不能用了。看来此方案在我使用的logback 版本中并不能解决问题2.设置charset, 在encoder 中增加一行 <charset>UTF-8</charset>,重新启动系统,日志中中文显示正常了。 下面是我的一个简要的logback.xml 配置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="c:/log"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
主要思路有两种:【1】本地客户端编码设置错了如果你用的是putty 一、Linux系统的设置
1)关闭Linux的防火墙
#iptables -F
#iptables save
2)编辑/etc/sysconfig/i18n,将LANG=en_US.UTF-8改为LANG=zh_CN.UTF-8
SUPPORT=en_US.UTF-8….也作类似改动,接下来执行:
#. /etc/sysconfig/i18n
#locale (检查本地locale)
如果看到显示了LANG=zh_CN.UTF-8等信息,表明改动成功。 【2】服务器不支持中文字符串显示【3】有可能是程序代码例如log4j文件设置错了
--------------------- 建议看看这本书《Linux就该这么学》
在Xshell、putty、SSH Secure Shell Client 等等客户端设置utf8的编码就可以了,在“文件”选项里点开“属性”一项进行设置,如下图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)