项目采用UTF-8作为统一的编码(JVM中缺省字符集、Tomcat的URIEncoding字符集、Struts2的Locale字符集配置、过滤器字符集、页面统一编码、数据库编码、mysql数据库连接字符集等),基本上排除了日常开发的中文乱码问题,具体可以参考Struts2中Datetimepicker控件的中文问题。

但在处理资源下载时候,由于资源在Linux服务器上存放目录及文件名称都存在中文(例如/products/material/img/101×80/人物肖像101×8/测试.jpg),因此在下载时候会报告FileNotFoundException错误,实际上仍然为中文文件名称问题,现简单总结一下处理方案:

分析思路:操作系统缺省字符集设置为zh_CN.UTF-8,JVM在存取操作系统文件时候,实际上要调用Linux操作系统本身的I/O函数来处理,而Linux的I/O函数存取中文文件时候字符集是由操作系统的环境变量决定的,因此报FileNotFoundException,应该是环境变量问题。

解决方案:将Linux操作系统本身缺省编码及字符集设为zh_CN.GB18030,这样可以正常处理中文名称。但在与JVM、数据库等相关的地方的字符集仍然采用UTF-8字符集。

备注:实际上并不需要将操作系统全局环境变量设置为zh_CN.GB18030,可以只设置运行Tomcat、Jboss的用户的环境变量,但考虑到方便性,直接设置全局的操作系统环境变量。

1、修改/etc/sysconfig/i18n

LANG=”zh_CN.GB18030″

LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”

SUPPORTED=”zh_CN.UTF-8:en_US.UTF-8:en_US:en:zh_CN.GB18030:zh_CN:zh:zh_TW.big5:zh_TW:zh:ja_JP.UTF-8:ja_JP:ja:ko_KR.eucKR:ko_KR:ko”

SYSFONT=”latarcyrheb-sun16″

SYSFONTACM=”8859-15″

2、设置环境变量

在/etc/profile中设置

export LC_ALL=zh_CN.GB18030

export LANG= zh_CN.GB18030

3、重启服务器

linux下文件下载中文,LINUX环境下资源下载中文目录及中文文件名称问题相关推荐

  1. linux中python安装_linux环境下的python安装过程图解(含setuptools)

    这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...

  2. [转载]在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。...

    原文地址:在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来. 比如:             ┌─┬─┐     │  │作者:wxl1990721 在中文Windows环境下 ...

  3. linux安装python虚拟环境_linux环境下安装python虚拟环境及注意事项

    创建python虚拟环境virtualenv.virtualenvwrapper 1,为什么需要搭建虚拟环境 由于当机器上两个项目依赖于相同包的不同版本时,会导致项目运行失败,此时可以安装虚拟环境 . ...

  4. linux mysql5.6编译_Linux 环境下编译安装MySQL5.6的笔记记录

    一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为 ...

  5. linux centos7安装ngix,centos7 环境下安装nginx--Linux

    本文将要为您介绍的是centos7 环境下安装nginx--Linux,具体完成步骤:一.安装前需要的编译环境准备 1.安装make yum install -y gcc automake autoc ...

  6. linux上php指向mysql_linux环境下 php如何配置mysql

    展开全部 Linux下配置安装PHP环境 参考别人的做法,遇到问题上网查,下面就是安装步骤. 一.安装Apache2.2.22 1.到官网下636f707962616964757a686964616f ...

  7. linux 安装防病毒软件,04Linux环境下Norton防病毒软件安装和使用.doc

    04Linux环境下Norton防病毒软件安装和使用 Linux环境下 Norton防病毒软件安装和使用 项目编号:项目名称:编 写 人:詹硕编写日期:2012-08-13审 核 人:审核日期:批 准 ...

  8. 硬盘克隆带linux系统,一种Windows环境下基于DiskGenius克隆Linux系统的方法及系统与流程...

    本发明涉及服务器操作系统技术领域,特别是一种windows环境下基于diskgenius克隆linux系统的方法及系统. 背景技术: 服务器在测试过程中需要反复安装linux操作系统用于服务器的各种测 ...

  9. linux安装powerline字体,Mac环境下安装powerline的方式

    什么是powerline 如果你不是通过搜索引擎搜到这篇文章的话,也许你还没有听说过powerline.而你又恰巧是个*UNIX党,或者VIM党的话,那么强烈建议你了解并使用powerline.pow ...

  10. linux编译ace tao,CentOS环境下ACE编译指南

    CentOS环境下ACE编译指南 1.环境说明: (1)CentOS6.3 (2) ACE6.10 2.编译步骤: (1)定义环境变量: ACE_ROOT=/root/work/cots/ACE_wr ...

最新文章

  1. 轻量级NLP工具Trankit开源,中文处理更精准,超越斯坦福Stanza,内存占用小45%
  2. Atitit. Async await 优缺点 异步编程的原理and实现 java c# php
  3. 删除桌面快捷方式小图标的bat命令
  4. listview winfrom 表头_winform ListView点击行表头,排序
  5. Matlab三种归一化方法
  6. jzoj6274-[NOIP提高组模拟1]梦境【贪心,堆】
  7. html分页实现w3c,分页_w3cschool
  8. 通过这个免费的,由23部分组成的互动课程,学习ES6 +
  9. matlab修改图片位深度_如何利用matlab统一处理照片亮度对比度
  10. ShellExecuteA URLDownloadToFileA
  11. linux android真机测试
  12. FlexSPI driver用法
  13. 力扣题目——53. 最大子序和
  14. 对数字信号处理中各种频率以及分辨率的理解
  15. static、const、static const、const static成员的初始化问题
  16. PDF转CAD经典软件有什么
  17. springboot获取到的MySQL数据少了8小时
  18. google地图距离算法_谷歌地图计算两个坐标点的距离函数
  19. 【数据结构】哈夫曼编码
  20. 理解Web 3:非事后的想法

热门文章

  1. ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据...
  2. 虚拟机 django 端口无法连接
  3. Linux多线程编程之员工信息管理系统
  4. android各种组件的监听器
  5. CSDN审核机制有点迷惑,决定逐步搬迁到简书
  6. 敬畏规则-不以规矩,不能成方圆
  7. OpenGL之GLFW和glad框架使用(十二)
  8. Wine 开发者指导/架构概览
  9. Android 匿名共享内存C++接口分析
  10. 如何利用wordpress搭建自己独立的博客(个人网站)