在confluence上傳excel文件,預覽時發現亂碼問題主要是由於再上傳文件的時候通常是Windows下的文件上傳,而預覽的時候,是linux下的環境,因爲linux下沒有微軟字體,因此預覽的時候沒法識別文檔字體,因此纔會出現亂碼。還好比某個業務有個功能生成圖片,結果圖片裏的字全變空格了,這也是服務器上沒相應的字庫形成的。解決辦法:在服務器上安裝中文字體。操做方法以下:java
1)先安裝想要的字體, 如楷體等, 從本機"c盤->Windows-Fonts"文件夾裏複製simkai字體拷到confluence部署機上(也能夠多下載幾個字體放過去)。 2)在linux系統下安裝新字體 linux用fontconfig來安裝字體庫 [root@confluence-server ~]# yum -y install fontconfig #通常是默認自帶的 安裝成功後,在/usr/shared目錄就能夠看到fonts和fontconfig目錄了(以前是沒有的) [root@confluence-server ~]# ll -d /usr/share/fonts/ [root@confluence-server ~]# 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@confluence-server ~]# cd /usr/share/fonts/ [root@confluence-server fonts]# mkdir windowsfonts [root@confluence-server fonts]# ll windowsfonts/ 總用量 4044 -rwxr-xr-x 1 root root 4135804 8月 17 2004 simkai.ttf 緊接着須要修改windowsfonts目錄的權限: [root@confluence-server ~]# chmod -R 755 /usr/share/fonts/windowsfonts/ 接下來須要安裝ttmkfdir來搜索目錄中全部的字體信息,並彙總生成fonts.scale文件 [root@confluence-server ~]# yum -y install ttmkfdir #通常會默認自帶 而後執行ttmkfdir命令 [root@confluence-server ~]# cd /usr/share/fonts/windowsfonts/ [root@confluence-server windowsfonts]# mkdir -p /usr/share/X11/fonts/encodings/encodings.dir [root@confluence-server windowsfonts]# ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir 發如今/usr/share/fontconfig/windowsfonts/目錄下多了個fonts.scale [root@confluence-server 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@confluence-server 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@confluence-server windowsfonts]# fc-cache 最後再次經過fc-list看一下字體列表: [root@confluence-server windowsfonts]# fc-list ........ 楷體_GB2312,KaiTi_GB2312:style=Regular ....... 能夠看到已經成功安裝上了中文字體,至此安裝過程就所有結束,再次查看報表能夠發現中文樣式和內容均已能夠正常顯示了。 3)在confluence部署機的安裝目錄, 如/opt/atlassian/confluence/bin下找到setenv.sh, 找到CATALINA_OPTS, 加入一行 [root@confluence-server ~]# 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@confluence-server ~]# cd /var/atlassian/application-data/confluence/shared-home/dcl-document [root@confluence-server dcl-document]# rm -rf ./* 5)重啓confluence就OK了。若是重啓後,發現原來上傳的附件預覽還出現亂碼,那就是緩存文檔文件所致使!能夠刪除這些文件,從新上傳進去就能夠正常預覽了!! [root@confluence-server ~]# 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@confluence-server ~]# /etc/init.d/confluence restart 順便說一句,confluence對數據庫的編碼格式要求是utf-8,因此請把數據庫編碼格式設置正確,以避免其餘地方出現亂碼。
========================================================================
以上是將字體直接安裝到服務器上,還能夠將字體安裝到java服務程序裏,步驟以下:
1)下載宋體字體文件simsun.ttc(或者直接下載simsun.ttf)
2)將該文件複製到$JAVA_HOME/jre/lib/fonts目錄下,更名爲simsun.ttf
3) 重啓java服務進程linux