Linux下Java写文件ANSI_X3.4-1968的问题

在Linux环境中,通过Java编写的小工具在终端执行时中文显示正常,但通过网页执行时出现乱码。问题源于文件编码被识别为ANSI_X3.4-1968而非UTF-8。经过排查,发现Apache服务器启动时未设置LANG环境变量为"en_US.UTF-8"。在Apache启动脚本中添加该环境变量后,问题得到临时解决。此问题与之前Git提交时因用户权限引发的编码问题相似。

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

这个问题困扰了我们很久,就是在Linux下,我们通过网页执行用Java写的小工具时,发现,在终端可以正确执行,而用网页执行却不能正确执行!中文总是出现乱码。

通过输出文件的编码,发现文件的格式都是:ANSI_X3.4-1968。这很明显不对,正常的应该是UTF-8 。

一开始,我们都以为是Java编码出了错,但是,为什么终端执行正确,而网页执行却是错的呢?

很明显,能过了Apache这个中介才发生了错误。于是猛地搜这个apache jvm ANSI_X3.4-1968,找到了这篇文章 :http://stackoverflow.com/questions/4398540/unicodeencodeerror-when-saving-imagefield-containing-non-ascii-characters-in-dja

在apache启动的时候,apache的整个运行环境并没有设置为 LANG="en_US.UTF-8" ,

所以,我在apache的启动函数(/etc/init.d/httpd文件或者是/etc/init.d/apache2/envvars文件)里面加了

1 start() 
2 {
3      export LC_ALL='en_US.UTF-8' #...省略n万行原来的代码 
4 }

 

仔细想想,这个问题和我之前遇到的Git不能提交的问题有点像。因为更改了apache的默认运行用户,导致git用户无法读取自己的.config文件,所以提交不了。

同样,这样也可能是git用户无法读取自己的.bashprofile文件,所以,即使我们如何设置.bashprofile里面的编码,都无法改变apache的运行环境。

同样的做法,在系统运行的时候动态地添加这些环境变量。问题得到暂时的解决...

### 如何在Linux环境下部署Maven 要在Linux环境中成功部署Maven,需遵循一系列配置步骤以确保其正常运行。以下是关于如何设置Maven环境以及验证安装的相关细节。 #### 配置Maven环境 为了满足需求并正确安装Maven,可以按照以下方法操作: 1. **确认Java已安装** Maven依赖于Java环境,因此需要先检查系统上是否存在合适的JDK版本。可以通过以下命令来验证Java版本: ```bash java -version ``` 如果未安装,则需要下载并安装适合的JDK版本[^1]。 2. **下载Maven压缩包** 访问[Maven官方网站](https://maven.apache.org/download.cgi),获取最新稳定版的二进制文件(通常为`.tar.gz`格式)。通过wget工具可以直接从终端下载: ```bash wget https://downloads.apache.org/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz ``` 3. **解压并移动至指定目录** 将下载好的压缩包解压到目标路径下,例如 `/usr/local/share/maven`: ```bash tar -xzvf apache-maven-3.5.2-bin.tar.gz -C /usr/local/share/ ln -s /usr/local/share/apache-maven-3.5.2 /usr/local/share/maven ``` 4. **更新环境变量** 编辑 `~/.bashrc` 或者 `/etc/profile` 文件,在其中添加如下内容以便全局生效: ```bash export MAVEN_HOME=/usr/local/share/maven export PATH=$MAVEN_HOME/bin:$PATH ``` 执行以下命令使更改立即生效: ```bash source ~/.bashrc ``` 5. **验证安装是否成功** 使用下面这条指令测试Maven是否被正确定位和初始化: ```bash mvn --version ``` 输出应类似于以下信息,表明当前使用的Maven版本及其关联参数: ``` Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00) Maven home: /usr/local/share/maven Java version: 1.8.0_121, vendor: Oracle Corporation Java home: /usr/lib/java-8-oracle/jre Default locale: en_US, platform encoding: ANSI_X3.4-1968 OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix" ``` #### 发布Jar包到Maven中央仓库 当完成基本的Maven配置之后,如果希望进一步将项目构建成果上传至远程存储库如Maven Central Repository,则可参考以下流程: 1. 创建脚本用于自动化发布过程,并赋予执行权限: ```bash chmod +x maven-central-deploy.sh ``` 2. 运行实际发布的命令序列,这里假设已经定义好了名为oss的服务端ID: ```bash mvn clean deploy -P oss ``` 上述命令会触发项目的清理、打包与分发动作,最终实现向指定服务器提交构件的目标[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值