linux乱码,文件名乱码、文件内容乱码,JDK编码。 CKFinder文件名称乱码 (使用UTF-8解决)
我遇到一个问题,CKFinder后台获取到的文件名是问号。
肯定是编码问题。
第一步,修改jdk编码
(目标读取到正确的文件名称。验证方法输出文件名到日志文件,下载日志到本地确定不乱码)
解决方法tomcat bin目录下新增:
setenv.sh
Java代码
- export JAVA_OPTS="-server -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8"
默认情况下,得到系统编码(Ubuntu openjdk):
Java代码
- # java -jar sysProp.jar | grep encoding
- file.encoding.pkg: sun.io
- sun.jnu.encoding: ANSI_X3.4-1968
- file.encoding: ANSI_X3.4-1968
- sun.io.unicode.encoding: UnicodeLittle
加上虚拟机参数后:
Java代码
- # java -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -jar sysProp.jar | grep encoding
- file.encoding.pkg: sun.io
- sun.jnu.encoding: UTF-8
- file.encoding: UTF-8
- sun.io.unicode.encoding: UnicodeLittle
编码解释:
- sun.jnu.encoding 影响文件名
- file.encoding 影响文件内容
附录sysProp.jar 的代码:
Java代码
- package pp.Main;
- import java.io.File;
- import java.io.IOException;
- import java.util.Iterator;
- import java.util.Properties;
- public class Main {
- public static void main(String[] args) throws IOException {
- Properties p = System.getProperties();
- Iterator<Object> keys = p.keySet().iterator();
- while(keys.hasNext()){
- String key=keys.next().toString();
- System.out.println(key+": "+System.getProperty(key));
- }
- String name="newfile_新文件";
- System.out.println(name);
- File f=new File(name);
- if(f.exists()){
- f.delete();
- }
- f.createNewFile();
- }
- }
设置好后,CKFinder得到的文件名在日志里显示正常,设置之前是问号。但是文件名称还是问号。
第二步,修改操作系统的编码。
(目标sysProp.jar新建的文件名能够正确显示 )
设置字符编码 vi /etc/environment 添加下面两行
Java代码
- PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
- LANG="zh_CN.UTF-8"
- LANGUAGE="zh_CN:zh:en_US:en"
关键的一步:使用locale-gen命令添加中文字符编码(命令执行后需要耐心等待几分钟)。
Java代码
- #locale-gen zh_CN.UTF-8
执行成功后,重启
执行java -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -jar sysProp.jar
然后ls 将正确看到中文显示。
Java代码
- ....
- sun.cpu.isalist:
- newfile_新文件
- root@ippcom:~# ls
- 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解决)相关推荐
- bandizip修改压缩文件内容_如何修改压缩文件的编码?
使用系统自带的那个"发送到-压缩文件夹"?那么就是压缩为zip格式了.而这种格式,确实要考虑文件名编码的问题--你在日语系统下压缩,使用了本地编码Shift-JIS,显示正常的文件 ...
- .rpt文件内容读取java_Java 中读取文件内容的 n 中方式
前言 刚接触 java 的时候很困惑一个事情 File相对路径,以哪个目录为参照物. 随着 io 模型的发展,java 1.7 的 nio,使用 Path.Paths 和 Files 等来方便 io ...
- php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式
介绍几种php获取文件内容的方式 介绍读取文件的方式之前,我们先看一下打开文件资源和关闭资源 名字资源绑定到一个流 - fopen 关闭一个已打开的文件指针 - fclose $handle1 = f ...
- JAVA读取文件内容,按格式输出文件
JAVA读取文件内容,按格式输出文件记录 一.我们要做什么? 1.本次我们来使用java将文件按格式输出. 二.我们为什么要做? 1.在使用jmeter脚本时候有个动态参数的文件,需要读取多个参数,人 ...
- 命令行输出文件内容时末尾有一个菱形问号乱码(头歌)
今天做头歌实验七第一题,题干描述:通过命令行参数将指定的文本文件内容显示在屏幕上.给出的源程序中存在一些逻辑错误,对程序进行修改.调试,使之能够正确完成指定任务. 源"错误"代码: ...
- 服务器微信接口返回乱码,企业微信会话内容存档调用DecryptData返回中文出现乱码...
企业微信会话内容存档调用DecryptData返回中文出现乱码 问题类型 API/组件名称 终端类型 微信版本 基础库版本 Bug 企业微信会话存档sdk 工具 无 无 我用c#开发会话存档功能,调用 ...
- java 下载文件内容为空_java 下载文件 内容为空。
Java日志使用slf4j 配置log4j后,有日志文件 但日志文件内容为空 SLF4J的全称是Simple Logging Facade for Java,即简单日志门面. SLF4J并不是具体的日 ...
- js 读取php文件内容为空,PHP 读取文件内容代码(txt,js等)
PHP 读取文件内容代码(txt,js等) 发布于 2014-10-15 20:15:37 | 128 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...
- csv文件 内容转义_保存csv文件时的生僻字处理和格式控制
应用场景 Web应用中导入导出报表是一个非常常见的需求,而普通用户使用最多的表格文件都是用Excel保存的. 一般来说,对于数据量较小的导入导出,使用xls/xlsx文件和用户交互是最佳选择,即有相应 ...
- php遍历文件夹下文件内容_php实现的遍历文件夹下所有文件,编辑删除
遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称 /* 遍历文件夹; 功能:(a)可删除文件 (b)可 ...
最新文章
- 2021-2027年中国中空纤维膜行业市场研究及前瞻分析报告
- 【每周CV论文推荐】 初学深度学习人脸识别和验证必读文章
- myeclipse 自动生成注释
- 使用dbutils对表进行增删改查
- Spork: Pig on Spark实现分析
- Linux:网络安全与主机基本防护:限制端口, 网络升级与 SELinux
- 光耦驱动单向可控硅_光耦继电器在信号传输方面的优势!
- 单片机涡轮流量传感器_青天仪表为您介绍安装涡轮流量计需要注意问题
- 工程制图与计算机绘图实训任务书及参考资料,水利工程制图与计算机绘图实训探讨...
- OpManager引领智能运维未来的发展方向
- 如何在php中添加动图,PS如何制作gif动图
- 离散数学——成真赋值与成假赋值
- 2017cad光标大小怎么调_怎么设置CAD中十字光标的长度
- 腾讯自研HIDS「洋葱」后台上云架构演进实践
- STM32下载程序至SRAM——基于正点原子精英STM32F103ZET6开发板
- 那些年遇到的DB2大坑
- 寒假日报(1.25)
- 格创东智加入“长三角数字干线建设·合伙人行动”
- Open3d从RGBD生成点云、mesh
- C#之AES加密解密
热门文章
- c#中queue_C#中的Queue.Dequeue()方法示例
- php中实现刷新功能,PHP-Push技术实现刷新功能
- ubuntu--18.04.01安装中文输入法(google拼音)
- ax²+bx+c≡0 mod m 和 x²≡a mod p的解存在性分析
- 用Python给学弟准备追女神要用的多种流行的表白爱心代码【源码】
- 遥感学习笔记(七)——其他常见卫星简介
- ios模仿微信的我界面的demo
- PPT技术干货1(下)——数据图表分析、逻辑梳理、高效办公
- 全球及中国牙科治疗灯行业市场调查及未来竞争动向展望报告2022-2028年
- 04-Python之路预告片