不同文件系统导致的乱码,tomcat乱码等

来源:互联网 发布:深入java虚拟机 豆瓣 编辑:程序博客网 时间:2024/05/17 06:27

不同文件系统编码可能出现的问题:
比如你在这个操作系统上完成编码,然后在另外一个不同文件系统编码的系统中进行编译这个java文件。编译时报如下异常
unmappable character for encoding ASCII
解决方法
编译时:javac -encoding utf-8 EncodedTest.java
运行时:java -Dfile.encoding=utf-8 EncodedTest
这是因为这两个系统的JDK file.encoding不同导致的。
查看当前jdk的file.encoding

System.out.print(System.getProperty("file.encoding"));  

也可以手动设置当前jdk的file.encoding

System.setProperty("file-encoding","UTF-8");

对于tomcat用户也可以通过修改一些配置文件来选择file.encoding。

  • tomcat日志乱码

    windows 系统
    修改tomcat/bin/catalina.bat文件, 添加一行

set JAVA_OPTS=%JAVA_OPTS%  -Dfile.encoding=UTF8

Linux、mac、Ubuntu系统
修改tomcat/bin/catalina.sh文件,添加一行

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8"
  • tomcat URL参数乱码

修改tomcat/conf/server.xml 文件

    <Connector port="8080" protocol="HTTP/1.1" redirectPort="8445"   maxHttpHeaderSize="8162"  useBodyEncodingForURI="true" minProcessors="100" maxProcessors="5000"     maxThreads="5000"      minSpareThreads="1000"       maxSpareThreads="4000"                                         enableLookups="false" acceptCount="3500"                                                 compression="on" compressionMinSize="2048"                                                         connectionTimeout="60000" debug="0" URIEncoding="UTF-8"/    />
0 0
原创粉丝点击