gpt4 book ai didi

java - Apache HTTP下Java环境上传文件后字符集发生变化

转载 作者:行者123 更新时间:2023-12-02 13:33:11 25 4
gpt4 key购买 nike

我有一个在独立 WildFly 中运行的项目,该项目在 Eclipse 下本地工作正常,但在 Apache HTTP 下的远程服务器中的 WildFly 上运行的同一项目在提交文件后特殊字符被损坏。例如:

提交文件之前:

Before submit a file

提交文件后:

After submit a file

<小时/>

操作系统:Linux

使用:JSF 2.2、Java 8、WildFly 10 和 Apache HTTP 2.4

所有 XHTML 文件均使用 UTF-8 编码,头部包含元标记:

<meta http-equiv="restrict-type" content="text/html; charset=UTF-8" />
<小时/>

我已经尝试过:

→ enctype 属性中包含“charset”参数的表单:

<h:form id="fileForm" enctype="multipart/form-data;charset=UTF-8">

→ 使用参数运行 WildFly:

-Dfile.encoding=UTF-8

→ 在 httpd.conf 中启用以下选项:

AddDefaultCharset UTF-8

我不知道我错过了什么...有人知道这个问题的解决方案吗?我将不胜感激任何帮助。预先感谢您,并对英语不好表示抱歉。

最佳答案

操作系统运行时使用什么字符集?您从 echo $LANGecho $LC_CTYPEecho $LC_ALL 得到什么?可能是在某个地方使用了操作系统的默认字符集。

我曾经在 Google Container Engine 上的 Kubernetes pod 中运行 Wildfly 应用程序时遇到过类似的问题。根本没有设置编码,因此我必须在启动应用程序服务器之前设置以下环境变量:

ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8

因此,在启动 WildFly 之前,请检查操作系统中的设置并根据需要设置环境变量。

编辑:根据评论,这似乎是 Apache 作为代理运行的问题。我不是这方面的专家,但也许this answer from superuser可以进一步帮助您。

关于java - Apache HTTP下Java环境上传文件后字符集发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43110161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com