解决方案
JDK引用的设置
Java引用参数添加"-Dfileencoding=UTF8 -Dsunjnuencoding=UTF8"
将上面参数添加到Catalinash中JAVA_OPTS变量中,重启Tomcat,OK了。是由于DOS窗口显示的编码同logcat日志中不同导致的乱码问题。DOS窗口默认的编码是GBK,而LogCat打印的是UTF-8的编码,所以要设置DOS字符编码:
1, 在当前命令行下输入 chcp 65001,按回车键。这时,当前代码页使用的就是UTF-8编码了。
2, 修改窗口属性,改变字体。在命令行标题栏上点击右键,选择“属性”->“字体””,将字体修改为True Type字体”Lucida Console”,然后点击确定将属性应用到当前窗口。
3,再使用logcat打印日志,就可以正常显示中文字符了。
4, 补充部分字符编码对应代码:
65001——UTF-8
936——简体中文
950——繁体中文
437——美国/加拿大英语
932——日文
949——韩文
866——俄文
解决方法如下:
如果是log4jproperties为配置文件,比如:
[c-sharp] view plaincopy
log4jappenderA1=orgapachelog4jRollingFileAppender
log4jappenderA1File=alllog
加入一行:
[c-sharp] view plaincopy
log4jappenderA1=orgapachelog4jRollingFileAppender
log4jappenderA1Encoding=UTF-8
log4jappenderA1File=alllog
如果是log4jxml为配置文件,比如:
[c-sharp] view plaincopy
<appender name="A1" class="orgapachelog4jRollingFileAppender">
<param name="File" value="alllog" />
</appender>
加入一行:
[c-sharp] view plaincopy
<appender name="A1" class="orgapachelog4jRollingFileAppender">
<param name="Encoding" value="UTF-8" />
<param name="File" value="alllog" />
</appender>
原理:
log4j通过QuietWriter写日志,QuietWriter extends FilterWriter,FilterWriter extends Writer,而Writer写入的是字符流,对字符集比较敏感。英文系统一般默认latin-1字符集,只能处理半角,通过encoding指定字符集后,能够正确输出指定字符集的字符流。
字符集指定后,WriterAppender的setEncoding通过orgapachelog4jconfigPropertySettersetProperties(Object obj, Properties properties, String prefix)设置字符集。
2、tail -f catalinaout
3、这样运行时就可以实时查看运行日志了
Ctrl+c 是退出tail命令。
tomcat出现中文乱码问题有以下几种情况:
乱码原因 :这是由于windows下的cmd的默认编码是GBK编码,Tomcat控制台默认输出设置为UTF-8编码
解决方法 :
解决办法 :
先检查tomcat下conf/loggingproperties配置文件
查看是否ConsoleHandlerencoding=utf-8,如果是则说明tomcat编码没有问题,出问题的是idea编码,如果不等于utf-8,则改为utf-8一般情况下此时可以正常输出tomcat日志信息。
requestgetParameter()打印出来是乱码
原因一 :idea控制台显示编码问题,idea的控制台显示使用的jvm默认编码为win系统的GBK编码,更改jvm编码格式为UTF-8
解决办法:
乱码原因: 服务器发给浏览器的数据默认是按照ISO-8859-1编码,浏览器接收到数据后按照默认的字符集进行解码后显示,如果浏览器的默认解码字符集不是ISO-8859-1,就出现乱码。
执行echo $LANG命令输出的是当前的编码方式,执行locale命令得到系统中所有可用的编码方式。要让Xshell不显示乱码,则要将编码方式改为UTF-8。在Xshell中[file]-> [open] -> 在打开的session中选择连接的那个,点击properties ->[Terminal],在右边translation中选择UTF-8,再重新连接服务器即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)