Linux部署web项目页面乱码

在CentOS7环境下部署web项目时遇到页面乱码问题。通过检查,发现设置Tomcat的server.xml和修改语言环境并未解决问题。最终解决方法是修改服务器的语言环境配置文件/etc/sysconfig/i18n,并确保在catalina.sh中添加相应设定,避免登录用户环境变量影响导致乱码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

1.拿的别人的打好的war包,部署在自己的服务器上,服务器环境centos7
2.页面都有设置charset="UTF-8",且都是使用UTF-8进行编码

解决过程:

1.老规矩在Tomcat的conf下的server.xml设置一波,如下:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"  URIEncoding="UTF-8"/>

最后发现没效果(这貌似是解决请求数据乱码的啊)

2.那就改下页面试试吧,把html标签改为

<html class="signup no-js" lang="zh-CN">

嗯?竟然可以了,不乱码了,但是总不能那么多页面都修改吧,这不是扯淡呢吗

突然想这是个新服务器,估计是语言环境的问题,重新登录服务器查看语言环境

果然是因为服务器语言环境导致的,那么需要修改/etc/sysconfig/i18n文件为如下内容:

LANG="zh_CN.UTF-8"

没有的话就新建一个。重启下服务器果然可以了。但是还没结束呢,

有次重启之后又双叒叕乱码了,查看下

### 解决IntelliJ IDEA 运行项目时出现的页面乱码问题 当遇到 IntelliJ IDEA 中运行项目页面显示乱码的情况,通常是因为字符编码设置不正确所引起的。对于 Web 应用程序而言,在多个地方都需要确认并调整字符集配置。 #### 设置文件编码 确保所有源代码文件采用统一的编码方式非常重要。可以在 IDE 层面全局设定默认编码为 UTF-8: 1. 打开 `File` -> `Settings`(Windows/Linux) 或者 `IntelliJ IDEA` -> `Preferences`(macOS),导航到 `Editor` -> `File Encodings`。 2. 将 `Global Encoding`, `Project Encoding` 及 `Default encoding for properties files` 都设为 `UTF-8`[^1]。 #### 修改Tomcat服务器配置 如果使用的是 Tomcat 作为应用服务器,则还需要检查其启动参数以及 web.xml 文件中的配置项来支持正确的字符编码处理。具体做法如下: - **调整 JVM 参数**:编辑 tomcat/bin/catalina.sh (Linux/Mac OS X) 或 catalina.bat (Windows), 添加 `-Dfile.encoding=UTF-8` 到 JAVA_OPTS 环境变量定义处; - **更新web应用程序部署描述符(web.xml)**: ```xml <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 以上更改有助于强制浏览器和服务端之间通信时都遵循指定的字符编码标准。 #### 数据库连接字符串中加入字符集选项 如果是数据库查询结果导致的乱码现象,那么应该核查 JDBC URL 是否包含了必要的字符集指示器。例如 MySQL 的情况可参照下面的形式构建数据源URL : ```java jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8mb4 ``` 通过上述措施能够有效预防因不同组件间编码差异而引发的数据传输失真问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值