我遇到一个问题,CKFinder后台获取到的文件名是问号。

肯定是编码问题。

第一步,修改jdk编码

(目标读取到正确的文件名称。验证方法输出文件名到日志文件,下载日志到本地确定不乱码)

解决方法tomcat bin目录下新增:

setenv.sh

Java代码

  1. export JAVA_OPTS="-server -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8"

默认情况下,得到系统编码(Ubuntu  openjdk):

Java代码

  1. # java -jar sysProp.jar  | grep encoding
  2. file.encoding.pkg: sun.io
  3. sun.jnu.encoding: ANSI_X3.4-1968
  4. file.encoding: ANSI_X3.4-1968
  5. sun.io.unicode.encoding: UnicodeLittle

加上虚拟机参数后:

Java代码

  1. # java -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -jar sysProp.jar  | grep encoding
  2. file.encoding.pkg: sun.io
  3. sun.jnu.encoding: UTF-8
  4. file.encoding: UTF-8
  5. sun.io.unicode.encoding: UnicodeLittle

编码解释:

  1. sun.jnu.encoding   影响文件名
  2. file.encoding  影响文件内容

附录sysProp.jar 的代码:

Java代码

  1. package pp.Main;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.util.Iterator;
  5. import java.util.Properties;
  6. public class Main {
  7. public static void main(String[] args) throws IOException {
  8. Properties p = System.getProperties();
  9. Iterator<Object> keys = p.keySet().iterator();
  10. while(keys.hasNext()){
  11. String key=keys.next().toString();
  12. System.out.println(key+": "+System.getProperty(key));
  13. }
  14. String name="newfile_新文件";
  15. System.out.println(name);
  16. File f=new File(name);
  17. if(f.exists()){
  18. f.delete();
  19. }
  20. f.createNewFile();
  21. }
  22. }

设置好后,CKFinder得到的文件名在日志里显示正常,设置之前是问号。但是文件名称还是问号。

第二步,修改操作系统的编码。

(目标sysProp.jar新建的文件名能够正确显示 )

设置字符编码   vi /etc/environment  添加下面两行

Java代码

  1. PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
  2. LANG="zh_CN.UTF-8"
  3. LANGUAGE="zh_CN:zh:en_US:en"

关键的一步:使用locale-gen命令添加中文字符编码(命令执行后需要耐心等待几分钟)。

Java代码

  1. #locale-gen zh_CN.UTF-8

执行成功后,重启

执行java -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -jar sysProp.jar

然后ls 将正确看到中文显示。

Java代码

  1. ....
  2. sun.cpu.isalist:
  3. newfile_新文件
  4. root@ippcom:~# ls
  5. index.html  newfile_新文件  sysProp.jar

注意一定要用支持UTF-8的ssh客户端,例如putty

参考

http://kang36897.blog.163.com/blog/static/17047373201331111224630/

http://blog.csdn.net/cuker919/article/details/8233821

http://www.linuxidc.com/Linux/2014-02/96939.htm

转载至https://www.iteye.com/blog/bnmnba-2384582

linux乱码,文件名乱码、文件内容乱码,JDK编码。 CKFinder文件名称乱码 (使用UTF-8解决)相关推荐

  1. bandizip修改压缩文件内容_如何修改压缩文件的编码?

    使用系统自带的那个"发送到-压缩文件夹"?那么就是压缩为zip格式了.而这种格式,确实要考虑文件名编码的问题--你在日语系统下压缩,使用了本地编码Shift-JIS,显示正常的文件 ...

  2. .rpt文件内容读取java_Java 中读取文件内容的 n 中方式

    前言 刚接触 java 的时候很困惑一个事情 File相对路径,以哪个目录为参照物. 随着 io 模型的发展,java 1.7 的 nio,使用 Path.Paths 和 Files 等来方便 io ...

  3. php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式

    介绍几种php获取文件内容的方式 介绍读取文件的方式之前,我们先看一下打开文件资源和关闭资源 名字资源绑定到一个流 - fopen 关闭一个已打开的文件指针 - fclose $handle1 = f ...

  4. JAVA读取文件内容,按格式输出文件

    JAVA读取文件内容,按格式输出文件记录 一.我们要做什么? 1.本次我们来使用java将文件按格式输出. 二.我们为什么要做? 1.在使用jmeter脚本时候有个动态参数的文件,需要读取多个参数,人 ...

  5. 命令行输出文件内容时末尾有一个菱形问号乱码(头歌)

    今天做头歌实验七第一题,题干描述:通过命令行参数将指定的文本文件内容显示在屏幕上.给出的源程序中存在一些逻辑错误,对程序进行修改.调试,使之能够正确完成指定任务. 源"错误"代码: ...

  6. 服务器微信接口返回乱码,企业微信会话内容存档调用DecryptData返回中文出现乱码...

    企业微信会话内容存档调用DecryptData返回中文出现乱码 问题类型 API/组件名称 终端类型 微信版本 基础库版本 Bug 企业微信会话存档sdk 工具 无 无 我用c#开发会话存档功能,调用 ...

  7. java 下载文件内容为空_java 下载文件 内容为空。

    Java日志使用slf4j 配置log4j后,有日志文件 但日志文件内容为空 SLF4J的全称是Simple Logging Facade for Java,即简单日志门面. SLF4J并不是具体的日 ...

  8. js 读取php文件内容为空,PHP 读取文件内容代码(txt,js等)

    PHP 读取文件内容代码(txt,js等) 发布于 2014-10-15 20:15:37 | 128 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  9. csv文件 内容转义_保存csv文件时的生僻字处理和格式控制

    应用场景 Web应用中导入导出报表是一个非常常见的需求,而普通用户使用最多的表格文件都是用Excel保存的. 一般来说,对于数据量较小的导入导出,使用xls/xlsx文件和用户交互是最佳选择,即有相应 ...

  10. php遍历文件夹下文件内容_php实现的遍历文件夹下所有文件,编辑删除

    遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称 /* 遍历文件夹; 功能:(a)可删除文件 (b)可 ...

最新文章

  1. 2021-2027年中国中空纤维膜行业市场研究及前瞻分析报告
  2. 【每周CV论文推荐】 初学深度学习人脸识别和验证必读文章
  3. myeclipse 自动生成注释
  4. 使用dbutils对表进行增删改查
  5. Spork: Pig on Spark实现分析
  6. Linux:网络安全与主机基本防护:限制端口, 网络升级与 SELinux
  7. 光耦驱动单向可控硅_光耦继电器在信号传输方面的优势!
  8. 单片机涡轮流量传感器_青天仪表为您介绍安装涡轮流量计需要注意问题
  9. 工程制图与计算机绘图实训任务书及参考资料,水利工程制图与计算机绘图实训探讨...
  10. OpManager引领智能运维未来的发展方向
  11. 如何在php中添加动图,PS如何制作gif动图
  12. 离散数学——成真赋值与成假赋值
  13. 2017cad光标大小怎么调_怎么设置CAD中十字光标的长度
  14. 腾讯自研HIDS「洋葱」后台上云架构演进实践
  15. STM32下载程序至SRAM——基于正点原子精英STM32F103ZET6开发板
  16. 那些年遇到的DB2大坑
  17. 寒假日报(1.25)
  18. 格创东智加入“长三角数字干线建设·合伙人行动”
  19. Open3d从RGBD生成点云、mesh
  20. C#之AES加密解密

热门文章

  1. c#中queue_C#中的Queue.Dequeue()方法示例
  2. php中实现刷新功能,PHP-Push技术实现刷新功能
  3. ubuntu--18.04.01安装中文输入法(google拼音)
  4. ax²+bx+c≡0 mod m 和 x²≡a mod p的解存在性分析
  5. 用Python给学弟准备追女神要用的多种流行的表白爱心代码【源码】
  6. 遥感学习笔记(七)——其他常见卫星简介
  7. ios模仿微信的我界面的demo
  8. PPT技术干货1(下)——数据图表分析、逻辑梳理、高效办公
  9. 全球及中国牙科治疗灯行业市场调查及未来竞争动向展望报告2022-2028年
  10. 04-Python之路预告片