Linux Tomcat中文路径乱码

TOMCAT 中文路径乱码的解决方案:

在Server.xml文件中添加一个名为URIEncoding的属性,它用于对HTTP请求中的get方法传过来的URL进行编码。tomcat默认的对于get协议中的URL编码都是ISO-8859-1,这个字符集不能直接支持中文等双字节的信息,而中文文件的下载链接恰恰是通过get协议进行的。以下说明修改Tomcat安装目录中的conf文件夹中的server.xml文件的方法。

打开conf/server.xml文件,如果没有修改过这个文件,应该可以在其中找到如下代码:

<Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" disableUploadTimeout="true"/>

这段代码规定了Tomcat监听HTTP请求的端口号等信息,可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat不再以ISO-8859-1的编码处理get请求。更改后的代码如下所示(红色部分为新添加的代码):

<Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" disableUploadTimeout="true" 
               URIEncoding="UTF-8"/>

  下面,准备测试一下更改后的效果。

最为简单的测试方法就是让Tomcat自己列出WEB程序中的目录和文件,默认情况下,Tomcat不会直接列出WEB程序目录中的文件和文件夹,但是,我们可以修改位于安装目录中的conf文件夹中的web.xml,使其能够支持自动列出WEB程序中的目录和文件。 

在conf/web.xml文件中找到如下代码:,将下面代码中蓝色false改为true,则可以在浏览器中

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

即将参数listings的属性改为true,就可让Tomcat自动列出某个WEB程序目录中的文件和文件夹。 

该方法在windows操作系统中正常,linux中还需要进行进一步的确认

看linux的默认编码(先确认有中文包)。命令#locale,如果与开发环境不一样,修改一下。

以下是LINUX服务器的版本及编码信息

Linux Tomcat中文路径乱码

修改Linux的默认编码

1.修改/etc/sysconfig/i18n文件

LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

修改为: 

LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="latarcyrheb-sun16""
SYSFONTACM="8859-15"

相关推荐