1. 程式人生 > >doc轉html在tomcat8下亂碼

doc轉html在tomcat8下亂碼

專案中有使用WordToHtmlConverter將word文件轉成HTML頁面的功能,在tomcat6中執行沒有問題,最近遷移到tomcat8後出現了亂碼問題,docx正常但是doc文件轉html會出現亂碼。

使用sublimetext直接開啟生成的jsp頁面是亂碼的但是裝上ConvertToUTF8外掛是可以轉成正常文字的

TransformerFactory tf = TransformerFactory.newInstance();  
Transformer serializer = tf.newTransformer();  
serializer.setOutputProperty
(OutputKeys.ENCODING, "GB2312"); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); serializer.setOutputProperty(OutputKeys.METHOD, "html"); serializer.transform(domSource, streamResult); out.close(); writeFile(new String(out.toByteArray()), outPutFile);
File file = new File(path);
fos = new
FileOutputStream(file); bw = new BufferedWriter(new OutputStreamWriter(fos,"GB2312"));

測試將上面兩處設計字元編碼的地方都修改成utf-8,生成的檔案亂碼並且無法轉成正常文字,推測doc文件轉html程式碼後預設使用GB2312,為什麼在執行後的頁面上顯示亂碼還不知道,但是發現轉換成的jsp頁面頭部少一行程式碼:

<%@ page language='java' contentType='text/html; charset=GB2312' pageEncoding='utf-8'%>

於是在寫檔案之前將這行程式碼加在new String(out.toByteArray())前面就可以在頁面上顯示正常的文字了。