我遇到一个问题,CKFinder后台获取到的文件名是问号。
肯定是编码问题。
第一步,修改jdk编码
(目标读取到正确的文件名称。验证方法输出文件名到日志文件,下载日志到本地确定不乱码)
解决方法tomcat bin目录下新增:
setenv.sh
export JAVA_OPTS="-server -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8"
默认情况下,得到系统编码(Ubuntu openjdk):
# 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 -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 的代码:
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 添加下面两行
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"
相关推荐
jdk-8u361-linux-aarch64.rpm jdk-8u361-linux-i586.rpm jdk-8u361-linux-i586.tar.gz jdk-8u361-linux-x64.rpm jdk-8u361-linux-x64.tar.gz jdk-8u361-windows-i586.exe jdk-8u361-windows-x64.exe 如果需要mac版本...
jdk-11.0.19_linux-x64_bin.tar.gz文件 jdk-11.0.19_linux-x64_bin.tar.gz文件 jdk-11.0.19_linux-x64_bin.tar.gz文件 jdk-11.0.19_linux-x64_bin.tar.gz文件 jdk-11.0.19_linux-x64_bin.tar.gz文件 jdk-11.0.19_...
(1)jdk-8u301-linux-aarch64.rpm (2)jdk-8u301-linux-aarch64.tar.gz (3)jdk-8u301-linux-arm32-vfp-hflt.tar.gz (4)jdk-8u301-linux-i586.rpm (5)jdk-8u301-linux-i586.tar.gz (6)jdk-8u301-linux-x64....
下载解压即可 jdk-8u261-linux-x64.tarjdk-8u261-linux-x64.tarjdk-8u261-linux-x64.tar" 表明这是Java开发工具包的一个更新版本,特别是JDK 8 Update 261(8u261),并且提供的是一个可下载和解压缩的文件,用于在...
首先,`jdk-8u171-linux-x64.rpm`是一个RPM(Red Hat Package Manager)格式的文件,主要用于基于RPM包管理系统的Linux发行版,如Fedora、CentOS或Red Hat Enterprise Linux。RPM包提供了方便的安装、升级和卸载功能...
这个压缩包文件"jdk-6u45-linux-x64.zip"包含的是JDK 1.6.0_45(也被称为6u45或1.6u45)的64位Linux版本。JDK 1.6是Java平台标准版的一个重要版本,它提供了许多功能和性能改进,是许多企业级应用的基础。 JDK 1.6u...
压缩包子文件的文件名称列表中仅有一个条目:“jdk-8u162-linux-x64.tar.gz”。这里的".gz"是gzip的缩写,是一种常见的数据压缩格式,用于减少文件大小,方便在网络上传输。这个文件是".tar"文件经过gzip压缩后的...
压缩包子文件的文件名称列表只提供了一个文件名“linux环境-jdk11--jdk-11.0.8_linux-x64_bin.tar.gz”,其中“.gz”表明该文件是一个使用gzip压缩的归档文件。gzip是一种广泛使用的文件压缩程序,通常用于减小文件...
具体到“jdk-8u181-linux-x64.tar.gz”这一文件,它是一个专为64位Linux操作系统设计的JDK压缩包,文件名中的“8u181”代表JDK版本8更新版本号为181,而“x64”表明该版本支持64位处理器架构。 在上传文件后,用户...
2. **解压**:使用`tar -zxvf jdk8-jdk-8u121-linux-x64.tar.gz`命令解压文件,这将创建一个名为`jdk1.8.0_121`的目录。 3. **配置环境变量**:编辑`~/.bashrc`或`~/.bash_profile`文件,添加以下内容: ```bash ...
Centos7离线安装文件 jdk-8u231-linux-x64.tar.gz压缩包 免费下载,现在博客都是付费文件,搞得头大,现在免费分享
Linux环境下的Tomcat所依赖的jdk8的环境rpm版 Linux环境下的Tomcat所依赖的jdk8的环境rpm版 Linux环境下的Tomcat所依赖的jdk8的环境rpm版 Linux环境下的Tomcat所依赖的jdk8的环境rpm版 Linux环境下的Tomcat所依赖的...
1. **下载**:首先,你需要从Oracle官方网站或可信的第三方源下载`java-jdk1.8-jdk-8u151-linux-x64.zip`压缩文件。确保文件的完整性和安全性,可以通过检查MD5或SHA校验和来验证。 2. **解压**:使用`unzip`命令将...
标题中的"jdk-8u144-linux-x64.zip"指的是Java Development Kit(JDK)的8u144版本,专为Linux操作系统x64架构设计的压缩包文件。JDK是Java编程语言的核心组件,包含了Java编译器、Java运行环境、Java类库以及开发者...
在压缩包子文件的文件名称列表中,"jdk-8u162-linux-x64.tar.gz"是JDK的实际安装包,它是一个被tar命令打包并用gzip压缩的文件,通常在Linux中使用tar命令解压,如`tar -zxvf jdk-8u162-linux-x64.tar.gz`。...
最后,关于文件名称列表中的“jdk-8u241-linux-x64.tar.gz”,这个文件是本压缩包的唯一文件。这说明该压缩包仅包含一个JDK安装文件,没有其他附加文件或文档。这也反映了JDK的分发方式,即尽量简洁,只包含必须的...
描述中提到的"解压后有个jdk-8u181-linux-x64.tar.gz 后直接在Linux中使用 jdk-8u181-linux-x64.tar",这意味着用户需要首先使用Linux的解压缩工具(如tar命令)来解压这个文件。解压后,会得到一个名为“jdk-8u181-...
最新版linux jdk-8u371-linux-x64.tar.zip最新版linux jdk-8u371-linux-x64.tar.zip最新版linux jdk-8u371-linux-x64.tar.zip
用户需要先解压(使用`tar -zxvf jdk-8u341-linux-x64.tar.gz`),然后手动配置环境变量如`JAVA_HOME`,将JDK添加到`PATH`,以便系统能够找到Java可执行文件。 3. **JDK 8u341 版本详解**: - **版本号**:`8u341`...