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

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

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

2)在linux系统下安装新字体
linux用fontconfig来安装字体库
[root@jira-wiki ~]# yum -y install fontconfig #一般是默认自带的 安装成功后,在/usr/shared目录就可以看到fonts和fontconfig目录了(之前是没有的)
[root@jira-wiki ~]# ll -d /usr/share/fonts/
[root@jira-wiki ~]# ll -d /usr/share/fontconfig/
drwxr-xr-x. 3 root root 4096 11月 9 2017 /usr/share/fontconfig/ 添加中文字体,如上面的楷体simkai字体文件到confluence部署机的/usr/share/fonts下的某个目录下(比如新建一个windowsfonts目录放进去)
[root@jira-wiki ~]# cd /usr/share/fonts/
[root@jira-wiki fonts]# mkdir windowsfonts
[root@jira-wiki fonts]# ll windowsfonts/
总用量 4044
-rwxr-xr-x 1 root root 4135804 8月 17 2004 simkai.ttf 紧接着需要修改windowsfonts目录的权限:
[root@jira-wiki ~]# chmod -R 755 /usr/share/fonts/windowsfonts/ 接下来需要安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件
[root@jira-wiki ~]# yum -y install ttmkfdir #一般会默认自带 然后执行ttmkfdir命令
[root@jira-wiki ~]# cd /usr/share/fonts/windowsfonts/
[root@jira-wiki windowsfonts]# mkdir -p /usr/share/X11/fonts/encodings/encodings.dir
[root@jira-wiki windowsfonts]# ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir 发现在/usr/share/fontconfig/windowsfonts/目录下多了个fonts.scale
[root@jira-wiki 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,即字体列表,在这里需要把我们添加的中文字体位置加进去:
[root@jira-wiki 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重启了:
[root@jira-wiki windowsfonts]# fc-cache 最后再次通过fc-list看一下字体列表:
[root@jira-wiki windowsfonts]# fc-list
........
楷体_GB2312,KaiTi_GB2312:style=Regular
....... 可以看到已经成功安装上了中文字体,至此安装过程就全部结束,再次查看报表可以发现中文样式和内容均已可以正常显示了。 3)在confluence部署机的安装目录, 如/opt/atlassian/confluence/bin下找到setenv.sh, 找到CATALINA_OPTS, 加入一行
[root@jira-wiki ~]# 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预览旧文件时还是会显示方框,
只有新文件才会正常。
[root@jira-wiki ~]# cd /var/atlassian/application-data/confluence/shared-home/dcl-document
[root@jira-wiki dcl-document]# rm -rf ./* 5)重启confluence就OK了。如果重启后,发现原来上传的附件预览还出现乱码,那就是缓存文档文件所导致!可以删除这些文件,重新上传进去就可以正常预览了!!
[root@jira-wiki ~]# 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)
[root@jira-wiki ~]# /etc/init.d/confluence restart 顺便说一句,confluence对数据库的编码格式要求是utf-8,所以请把数据库编码格式设置正确,以免其他地方出现乱码。

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

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

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

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

    在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...

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

    @RequestMapping(value ="/upload",method = RequestMethod.POST) @Permission(isAjax=false) pu ...

  3. jsp+springmvc实现文件上传、图片上传和及时预览图片

    1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...

  4. [.ashx檔?泛型处理例程?]基础入门#2....FileUpload上传前,预览图片(两种作法--ashx与JavaScript)

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/20/ashx_beginner_02_fileupload_picture_p ...

  5. Ajax上传图片以及上传之前先预览

    手头上有几个小项目用到了easyUI,一开始决定使用easyUI就注定了项目整体上前后端分离,基本上所有的请求都采用Ajax来完成.在文件上传的时候用到了Ajax上传文件,以及图片在上传之前的预览效果 ...

  6. java多图片上传--前端实现预览--图片压缩 、图片缩放,区域裁剪,水印,旋转,保持比例。

    java多图片上传--前端实现预览 前端代码: https://pan.baidu.com/s/1cqKbmjBSXOhFX4HR1XGkyQ 解压后: java后台: <!--文件上传--&g ...

  7. web 图片上传实现本地预览

    在说上传之前先说说如何替换or美化浏览器自带的简陋上传按钮(自定义自己的上传按钮 如:img): 1.将自定义上传按钮上方添加 input file 框,实现input实现透明处理. 2.对自定义上传 ...

  8. dwz+jquery+fileupload+springmvc实现文件上传 及图片预览

    1 前台jsp:文件的上传利用了iframe实现局部刷新功能.使用了apache的fileupload组件,用到的jar: commons-fileupload.jar,commons-io.jarD ...

  9. php文件上传及头像预览

    php文件上传原理是通过form表单的enctype="multipart/form-data"属性将文件临时放到wamp文件夹中的tmp目录下,再通过后台php 程序将文件保存在 ...

随机推荐

  1. js实现横向跑马灯效果

    首先我们需要一个html代码的框架如下: <div style="position: absolute; top: 0px; left: 168px; width: 100%; mar ...

  2. JS时间的获取及格式

    最近在做一个web聊天室,一个时间的问题挡住了进程,只好全网大搜索,将实用的方法记录下来,以备后查 <script src="/static/bootstrap/js/jquery.m ...

  3. 能ping通虚拟机,但snmp报文 Destination unreachable(Host administratively prohibited

    如题目,使用virtual box 虚拟机,虚拟机系统为centos6.5, 主机系统为win10 内外设置ip在同一网段后,互相能ping通,centos 系统开启snmp服务,此处说明以下, sn ...

  4. LeetCode算法题-Diameter of Binary Tree(Java实现)

    这是悦乐书的第257次更新,第270篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第124题(顺位题号是543).给定二叉树,您需要计算树的直径长度. 二叉树的直径是树中 ...

  5. Cloudera Manager(CDH5)内部结构、功能包括配置文件、目录位置等

    1. 相关目录 /var/log/cloudera-scm-installer : 安装日志目录./var/log/* : 相关日志文件(相关服务的及CM的)./usr/share/cmf/ : 程序 ...

  6. JAVA—枚举(Enum)学习总结

    1.枚举(Enumeration) 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式.这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码 ...

  7. Zabbix 3.4.7针对一些主机设置期间维护

    场景说明: 由于公司有些主机设置了定时开机关机,每次开机关机得时候都会发邮件告警,每次都需要值班人员提醒,为了处理这种无效告警,可以在zabbix中设置维护 zabbix中的维护---维护期间:用来设 ...

  8. linux-python3.8安装

    环境:  centos7.5 版本:python3.8 1.依赖包安装 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-deve ...

  9. 解决chrome安装谷歌访问助手错误问题

    解决chrome安装谷歌访问助手错误问题 针对新版本安装谷歌访问助手插件报错问题 1.下载谷歌访问助手 http://www.ggfwzs.com/ 2.chrome浏览器打开发者模式 3.将下载的c ...

  10. DisplayAttribute没作用,why?

    namespace WebBulletinBoard.DataAccess { using System; using System.ComponentModel.DataAnnotations; u ...