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


    在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服务进程  

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

  • 相关阅读:
    H5 video播放视频遇到的问题
    IIS域名转发
    IIS Tomcat共享80端口
    C# 操作注册表WindowsRegistry
    Owin Middleware如何在IIS集成管道中执行
    如何定义一个有效的OWIN Startup Class
    mysql 数据库的备份与还原 at winows
    windows查看端口占用
    asp.net 二级域名表单认证情况下共享Cookie
    c# 多线程使用队列顺序写日志的类 (需要再优化)
  • 原文地址:https://www.cnblogs.com/easonscx/p/10660329.html
Copyright © 2020-2023  润新知