温馨提示×

centos怎么解决weblogic乱码

小樊
45
2026-10-15 03:29:44
栏目: 智能运维

在 CentOS 上部署 WebLogic 出现乱码(中文乱码、日志乱码、页面乱码等),通常和 系统字符集、JVM 编码、WebLogic 配置、应用编码 有关。下面按最常见原因 + 解决步骤说明。


一、先确认CentOS系统字符集(最基础)

1. 查看当前字符集

locale
echo $LANG

正常应是:

LANG=zh_CN.UTF-8

2. 如果不是 UTF-8,修改

sudo localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

编辑:

sudo vi /etc/locale.conf

内容:

LANG="zh_CN.UTF-8"

重启或重新登录。


二、WebLogic启动脚本设置JVM编码(非常关键)

WebLogic 默认可能使用 ISO-8859-1,必须显式指定 UTF-8。

修改 setDomainEnv.sh

路径示例:

$DOMAIN_HOME/bin/setDomainEnv.sh

在文件末尾或 JAVA_OPTIONS 处添加:

export JAVA_OPTIONS="$JAVA_OPTIONS -Dfile.encoding=UTF-8"
export JAVA_OPTIONS="$JAVA_OPTIONS -Duser.language=zh"
export JAVA_OPTIONS="$JAVA_OPTIONS -Duser.region=CN"

重启 WebLogic:

stopWebLogic.sh
startWebLogic.sh

三、WebLogic控制台乱码

1. 控制台编码

登录 WebLogic Console:

环境 → 服务器 → 你的Server → 配置 → 常规

确认:

  • 区域设置:zh_CN
  • 字符编码:UTF-8

2. 修改 config.xml

<server>
  <name>AdminServer</name>
  <client-certificate-enforced>false</client-certificate-enforced>
  <locale>zh_CN</locale>
  <web-app-container>
    <jsp-encoding>UTF-8</jsp-encoding>
  </web-app-container>
</server>

四、Web应用(JSP / Servlet)乱码

1. JSP 页面

<%@ page contentType="text/html;charset=UTF-8" %>

2. Servlet

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

3. web.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>
</filter>

五、数据库连接乱码(Oracle / MySQL)

Oracle

JDBC URL:

jdbc:oracle:thin:@IP:1521:ORCL?useUnicode=true&characterEncoding=UTF-8

数据库本身:

SELECT userenv('language') FROM dual;
-- 应为 SIMPLIFIED CHINESE_CHINA.AL32UTF8

MySQL

jdbc:mysql://ip:3306/db?useUnicode=true&characterEncoding=UTF-8

六、日志乱码

1. WebLogic日志

vi $DOMAIN_HOME/bin/setDomainEnv.sh

确保:

-Dfile.encoding=UTF-8

2. 查看日志

less -r logfile.log

或

cat logfile.log

七、快速自检清单 ✅

  • [ ] CentOS 是 UTF-8
  • [ ] WebLogic 启动参数有 -Dfile.encoding=UTF-8
  • [ ] JSP / Servlet 设置 UTF-8
  • [ ] 数据库字符集 UTF-8
  • [ ] 浏览器编码 UTF-8

八、如果你愿意,我可以更精准帮你

你可以告诉我:

  1. WebLogic 版本
  2. CentOS 版本
  3. 乱码场景(页面?日志?控制台?数据库?)
  4. 应用类型(Spring?纯JSP?)

我可以直接给你对应配置文件修改示例。

0 踩