zoukankan      html  css  js  c++  java
  • Linux下Java写文件ANSI_X3.41968的问题

    这个问题困扰了我们很久,就是在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的运行环境。

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

  • 相关阅读:
    zabbix迁移思路
    top命令
    random随机数
    判断传入元素是否可见
    title_contains
    1.Selenium的工作原理以及网页上查找元素
    APP升级测试
    英语词汇
    作文 |素材笔记
    408计组 |二、数据的表示和运算
  • 原文地址:https://www.cnblogs.com/trying/p/2863849.html
Copyright © 2011-2022 走看看