最近在做一个docker安装confluence,出现了一个问题,就是文件上传之后,点击文件预览,发现文件预览是乱码。后来这个问题解决之后发现了解决预览乱码的一些方法。
文件为什么会乱码?
主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候无法识别文档字体,所以才会出现乱码,至此解决方法如下
1、先安装想要的字体, 如微软雅黑, 宋体等, 从windows/font下拷到linux的/usr/share/fonts下,
在linux中,字体库的存放位置是/usr/share/fonts目录,新建个目录比如windowsfonts放中文字体
(1)添加中文字体
中文字体文件在我们的windows系统中就可以找到,打开c盘下的Windows/Fonts目录:
如上图,我们只需要将我们需要的字体拷贝出来并上传至linux服务器/usr/share/fonts/windowsfonts目录即可
(2)修改文件夹权限
紧接着需要修改windowsfonts目录的权限:
chmod -R 755 /usr/share/fonts/windowsfonts
(3)编辑配置文件
增加字体文件路径
vi /etc/fonts/fonts.conf
#添加我的路径
<dir>/usr/share/fonts/windowsfonts</dir>
(4)刷新内存中的字体缓存
fc-cache
查看字体列表
fc-list
可以看到宋体包含在其中
至此,安装中文字体完成。
2、在confluence的安装目录, 如/opt/atlassian/confluence/bin下找到setenv.sh, 找到CATALINA_OPTS, 加入一行
#fontpath=/usr/share/fonts/windowsfonts/目录为放置中文字体的目录
CATALINA_OPTS=”-Dconfluence.document.conversion.fontpath=/usr/share/fonts/windowsfonts/ ${CATALINA_OPTS}”
3、清空confluence的home下viewfile目录和shared-home/dcl-document目录里的所有缓存文档文件,
不清空的话, confluence预览旧文件时还是会显示方框,只有新文件才会正常.
rm -rf /var/atlassian/confluence/viewfile/temp
rm -rf /var/atlassian/confluence/shared-home/dcl-document
4、重启confluence就OK了
通过以上几部就可以解决上传附件中文文档乱码问题,顺便说一句,confluence对数据库的编码格式要求是utf-8,所以请把数据库编码格式设置正确,以免其他地方出现乱码。
参考文档:
https://blog.csdn.net/qq_30408111/article/details/78297321
http://www.linuxidc.com/Linux/2016-09/135548.htm
https://blog.csdn.net/qq_33645580/article/details/113613129