关于confluence上传文件附件预览查看时出现乱码的问题解决办法

在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候无法识别文档字体,所以才会出现乱码。还比如某个业务有个功能生成图片,结果图片里的字全变空格了,这也是服务器上没相应的字库造成的。

1、解决办法:在服务器上安装中文字体。操作方法如下:

1)先安装想要的字体, 如楷体等, 从本机"c盘->Windows-Fonts"文件夹里复制simkai字体拷到confluence部署机上(也可以多下载几个字体放过去)。

2)在linux系统下安装新字体
linux用fontconfig来安装字体库
[[email protected] ~]# yum -y install fontconfig     #一般是默认自带的

安装成功后,在/usr/shared目录就可以看到fonts和fontconfig目录了(之前是没有的)
[[email protected] ~]# ll -d /usr/share/fonts/
[[email protected] ~]# ll -d /usr/share/fontconfig/
drwxr-xr-x. 3 root root 4096 11月  9 2017 /usr/share/fontconfig/

添加中文字体,如上面的楷体simkai字体文件到confluence部署机的/usr/share/fonts下的某个目录下(比如新建一个windowsfonts目录放进去)
[[email protected] ~]# cd /usr/share/fonts/
[[email protected] fonts]# mkdir windowsfonts
[[email protected] fonts]# ll windowsfonts/
总用量 4044
-rwxr-xr-x 1 root root 4135804 8月  17 2004 simkai.ttf

紧接着需要修改windowsfonts目录的权限:
[[email protected] ~]# chmod -R 755 /usr/share/fonts/windowsfonts/

接下来需要安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件
[[email protected] ~]# yum -y install ttmkfdir               #一般会默认自带

然后执行ttmkfdir命令
[[email protected] ~]# cd /usr/share/fonts/windowsfonts/
[[email protected]iki windowsfonts]# mkdir -p /usr/share/X11/fonts/encodings/encodings.dir
[[email protected] windowsfonts]# ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

发现在/usr/share/fontconfig/windowsfonts/目录下多了个fonts.scale
[[email protected] windowsfonts]# cat fonts.scale
2
simkai.ttf -misc-KaiTi_GB2312-medium-r-normal--0-0-0-0-c-0-ascii-0
simkai.ttf -misc-KaiTi_GB2312-medium-r-normal--0-0-0-0-c-0-iso10646-1

最后一步就是修改字体配置文件了,首先通过编辑器打开配置文件,可以看到一个Font list,即字体列表,在这里需要把我们添加的中文字体位置加进去:
[[email protected] windowsfonts]# vim /etc/fonts/fonts.conf
.......
<!-- Font directory list -->

    <dir>/usr/share/fonts</dir>
    <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>
    <dir>/usr/share/fonts/windowsfonts</dir>                #添加这一行
    <dir>~/.fonts</dir>

<!--

然后输入:wq保存退出,最后别忘了刷新内存中的字体缓存,这样就不用reboot重启了:
[[email protected] windowsfonts]# fc-cache

最后再次通过fc-list看一下字体列表:
[[email protected] windowsfonts]# fc-list
........
楷体_GB2312,KaiTi_GB2312:style=Regular
.......

可以看到已经成功安装上了中文字体,至此安装过程就全部结束,再次查看报表可以发现中文样式和内容均已可以正常显示了。

3)在confluence部署机的安装目录, 如/opt/atlassian/confluence/bin下找到setenv.sh, 找到CATALINA_OPTS, 加入一行
[[email protected] ~]# vim /opt/atlassian/confluence/bin/setenv.sh
......
CATALINA_OPTS=”-Dconfluence.document.conversion.fontpath=/usr/share/fonts/windowsfonts/ ${CATALINA_OPTS}”

4)清空confluence的home下viewfile目录和shared-home/dcl-document目录里的所有缓存文档文件, 不清空的话, confluence预览旧文件时还是会显示方框,
只有新文件才会正常。
[[email protected] ~]# cd /var/atlassian/application-data/confluence/shared-home/dcl-document
[[email protected] dcl-document]# rm -rf ./*

5)重启confluence就OK了。如果重启后,发现原来上传的附件预览还出现乱码,那就是缓存文档文件所导致!可以删除这些文件,重新上传进去就可以正常预览了!!
[[email protected] ~]# lsof -i:8080
COMMAND    PID       USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
java    138112       jira  151u  IPv6 230299384      0t0  TCP *:webcache (LISTEN)
java    188894 confluence  868u  IPv6 286937024      0t0  TCP confluence-server:37886->confluence-server:webcache (CLOSE_WAIT)
[[email protected] ~]# /etc/init.d/confluence restart

顺便说一句,confluence对数据库的编码格式要求是utf-8,所以请把数据库编码格式设置正确,以免其他地方出现乱码。

注意:以上是将字体直接安装到服务器上,还可以将字体安装到java服务程序里,步骤如下:
1)下载宋体字体文件simsun.ttc(或者直接下载simsun.ttf)
2)将该文件复制到$JAVA_HOME/jre/lib/fonts目录下,改名为simsun.ttf
3) 重启java服务进程  

---------------------------------------------书山有路勤为径,学海无涯苦作舟--------------------------------------------------------

原文地址:https://www.cnblogs.com/easonscx/p/10660329.html

时间: 2024-12-28 16:10:35

关于confluence上传文件附件预览查看时出现乱码的问题解决办法的相关文章

confluence上传文件附件预览乱码问题(linux服务器安装字体操作)

在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候无法识别文档字体,所以才会出现乱码.还比如某个业务有个功能生成图片,结果图片里的字全变空格了,这也是服务器上没相应的字库造成的.解决办法:在服务器上安装中文字体.操作方法如下: 1)先安装想要的字体, 如楷体等, 从本机"c盘->Windows-Fonts"文件夹里复制simkai字

Linux 上传文件rz 命令提示 -bash: rz: command not found 问题解决办法

在使用rz命令上传文件的时候报错,如截图 这个问题是Linux系统缺少工具包,在有网络的情况是可以使用下面命令,进行在线安装 yum -y install lrzsz 这样子就上传成功了,如果有些同学出现?z waiting to receive.**B0100000023be50 rz 与 sz 需要端支持.终端就是连接远程服务器的客户端,例如 XShell.SecureCRT 等,linux默认终端是不支持的. 我用的是Xshell工具. 原文地址:https://www.cnblogs.c

Java Spring Boot 上传文件和预览文件地址解析

@RequestMapping(value ="/upload",method = RequestMethod.POST) @Permission(isAjax=false) public String Upload(HttpServletRequest request, HttpServletResponse response,@RequestParam("files") MultipartFile[] files) { List<String> fi

文件上传之图片预览

一.业界现状分析 有时候我们需要在上传图片之前为用户提供图片预览的功能,HTML5规范出来之前,由于缺少原生的File API支持,我们需要借助Flash或者浏览器插件来满足这种需求.有了HTML5,我们可使用URL或者FileReader对象实现预览功能. 二.应用场景 图片分享类的应用,如Flickr,Facebook.相册应用,如:QQ相册. 虽然139邮箱没有合适的应用场景,但是可将技术预研的成果作为技术储备,好东西总有用得着的时候. 三.编码实现 方式一:window.URL (1).

2016/4/19 ①单个文件上传 ②上传图片后 预览图片

1,f1.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- 作业:在网上找上传图片预览的代码 上传服务器 再预览--> <form action="f1chuli.php&q

input 文件上传实现本地预览

上传图片 本地预览 获取图片大小 上传视频 本地预览 获取视频 duration 视频大小 图片上传 主要涉及内容 input accept filesList URL.createObjectURL() URL.revokeObjectURL() input file <label for='upload'></label> // ::before :: after 用于扩展可点击区域 <input type="file" id="upload

SpringCloud上传文件,经过Zuul,中文文件名乱码解决办法

SpringCloud上传文件,经过Zuul,中文文件名乱码解决办法 2018-03-17 最近在使用SpringCloud搭建微服务的过程中,发现上传文件经过Zuul网关转发的时候,回应为上传文件名中文乱码导致文件的写操作失败,从而导致文件上传失败,但是不经过Zuul转发的时候,文件上传正常,因此猜测是Zuul对上传的请求的编码进行了处理.最终在网上找到了两种解决方案: 方案一.在上传文件的请求路径之前添加字符串“zuul”声明此请求的编码不做处理. 1 2 3 4 5 6 7 8 9 10

文件上传(无预览模式版)

文件上传是网页的基本功能之一,这一章我们将讲解无预览模式版本 第一:网页表单显示 <body> <h1>文件上传</h1> <form action="chuli.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input

文件上传(带有预览模式)

这里所讲的预览是将文件上传至后台之后,代码调用服务器端文件,在网页中显示出来 第一:网页显示部分 和  显示区域css样式表 <body> <h1>文件上传</h1> <form action="chuli.php" method="post" enctype="multipart/form-data" id="sc" target="hidden_frame"&g