根據ftl模板導出word時,如果填充的字符含有特殊字符< 、>、&,那麼導出的word是無法打開的。因爲這些字符在導出word時被認爲是ftl的標籤,正常導出後再打開是會報錯。如果以xml的方式打開,會發現所有內容都是完整的,唯獨上面三個特殊字符出問題。
爲了解決這個問題,首先我新建一個word,在裏面填上上面三個特殊字符,然後保存爲xml。在該xml中找到對應的字符,發現已經轉義了 < 對應< >對應> &對應&
可以看出,如果填充的是轉義後的字符是可以正常打開的。所以要在填充字符之前檢測私服是否含有上述特殊字符,如果有就需要轉義。代碼如下:
/**
* 處理轉義字符
* @param str
* @return
*/
private String transform(String str){
if(str.contains("<")||str.contains(">")||str.contains("&")){
str=str.replaceAll("&", "&");
str=str.replaceAll("<", "<");
str=str.replaceAll(">", ">");
}
return str;
}