我遇到一个问题,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版本...
(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-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_...
Centos7离线安装文件 jdk-8u231-linux-x64.tar.gz压缩包 免费下载,现在博客都是付费文件,搞得头大,现在免费分享
linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux-jdk安装包linux...
最新版linux jdk-8u371-linux-x64.tar.zip最新版linux jdk-8u371-linux-x64.tar.zip最新版linux jdk-8u371-linux-x64.tar.zip
Linux虚拟机安装JDK所需的文件 jdk-8u171-linux-x64.rpm jdk-8u171-linux-x64.tar.gz
最新版linux jdk-8u333-linux-x64.tar.gz最新版linux jdk-8u333-linux-x64.tar.gz最新版linux jdk-8u333-linux-x64.tar.gz
解压后有个jdk-8u181-linux-x64.tar.gz ,直接在liunx中使用 jdk-8u181-linux-x64.tar
jdk8 java8 linux版 jdk-8u162-linux-x64.tar.zip
jdk安装包,Linux版.jdk-8u181-linux-x64.tar.gz
jdk8版本下载,用于搭建Linux服务器的java环境。(文件全称:jdk-8u201-linux-x64.tar.gz)
1.下载后重命名:jdk-8u281-linux-x64.tar.gz 2.解压 tar -zxvf jdk-8u281-linux-x64.tar.gz 3.配置环境变量:vim /etc/profile 最后添加: export JAVA_HOME=/opt/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$...
jdk-8u321-linux-aarch64.tar.gz
jdk-8u202-linux-x64.rpm适用于Linux 64位系统,是在Binary Code License (“BCL”)许可协议下提供最后的免费商业版本,允许用在生产环境中; 对于 2019 年 4 月 16 日开始的版本,Oracle JDK 许可协议已更改,也...
jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-linux-x64。jdk-8u333-...
jdk-8u341-linux-x64.rpm / jdk-8u341-linux-x64.tar.gz
jdk-8u40-linux-x64.rpm
常用Linux服务器环境的JDK jdk-8u121-linux-x64.tar.gz文件在Linux_JDK8内,请解压之后使用,如果无法下载请留言!