Linux下Tomcat中文乱码解决

8 篇文章 1 订阅

一、修改Linux系统的编码

1、先查看 Linux 是什么编码

系统环境:Red Hat Enterprise Linux Server 6
[root@1-min huage]# locale             //查看当前系统的语言环境
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
.....

2、然后查看 Linux 支持什么编码 

[root@1-min huage]# locale -a //查看系统支持的所有语言 ...... //此处省略了 en_US en_US.iso88591 en_US.iso885915 en_US.utf8 ....... zh_CN zh_CN.gb18030 zh_CN.gb2312 zh_CN.gbk zh_CN.utf8 ......

 3、修改Linux 编码

方法1:
vi   /etc/sysconfig/i18n

 
默认为:

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

修改为:

LANG="zh_CN.GBK"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
SYSFONT="latarcyrheb-sun16"
[root@1-min huage]# source /etc/sysconfig/i18n
在不重启的情况下重新加载i18n文件


方法2: (直接在尾部添加 )
vi /etc/profile

 
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"

//使修改的profile 文件生效
 source /etc/profile

4、自己系统如果不支持一些编码,那就需要添加编码文件。

locale-archive
locale-archive.tmpl
这两个文件位于 //usr/lib/locale 下面 。只需要将其复制到这个路径下,重新查看系统支持的编码,就会发现文件中的编码都出现了。
文件的下载地址 http://download.csdn.net/download/qq_25775675/10123847
 
 

二、修改TomCat 控制台 编码

第一:

解决方案
JDK引用的设置
Java引用参数添加" -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
将上面参数添加到 Catalina.sh中JAVA_OPTS变量中,重启Tomcat,OK了。
修改Tomcat的bin目录下的catalina.sh文件,找到以下代码:
if [ -z "$LOGGING_MANAGER" ]; then
  JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager "
else 
  JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER"
fi
修改为以下:
if [ -z "$LOGGING_MANAGER" ]; then
  JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
else 
  JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
fi
 

第二:

1. 打开文件/tomcat/bin/catalina.bat
2. set JAVA_OPTS= 的内容中添加选项-Dfile.encoding=GBK
3. 重启tomcat即可

 

三、修改tomcat编码

修改tomcat下的conf/server.xml文件

找到如下代码:    
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息。

可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。
修改完成后:
 
<Connector port="8080"  protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

 

Windows 下Tomcat中文乱码解决

https://blog.csdn.net/qq_25775675/article/details/104839569

 
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
当在Tomcat中遇到乱码问题时,可以尝试以下几种解决方案: 1. 设置URIEncoding:在Tomcat的server.xml配置文件中,找到<Connector>标签,并在其内部添加URIEncoding属性,如下所示: ``` <Connector URIEncoding="UTF-8" ... /> ``` 这将确保请求和响应的URL参数以及查询字符串都使用UTF-8编码。 2. 设置字符集过滤器:在web.xml配置文件中,添加一个字符集过滤器,以确保请求和响应的内容都使用相同的字符集。以下是一个示例配置: ``` <filter> <filter-name>CharsetFilter</filter-name> <filter-class>com.example.CharsetFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharsetFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 在上述示例中,将请求和响应的字符集都设置为UTF-8。 3. 设置默认字符集:可以通过修改Tomcat的catalina.bat(Windows)或catalina.sh(Linux)文件,在JAVA_OPTS变量中添加以下参数: ``` -Dfile.encoding=UTF-8 ``` 这将设置Java虚拟机的默认字符集为UTF-8。 4. 检查页面编码:确保HTML页面或其他文档的编码与服务器设置一致。可以通过在<head>标签内添加以下元标记来指定页面编码: ``` <meta charset="UTF-8"> ``` 这将确保浏览器正确解析页面的字符集。 这些是解决Tomcat乱码问题的常见方法,根据具体情况选择适合的解决方案。同时,还应该检查应用程序的代码,确保正确处理字符编码。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值