2016-03-21 47 views
0

我想從使用文件流的pdf文件讀取,並且我想將其寫入以cp1252編碼格式的作者。以下是代碼:從UTF-8格式化的pdf文件中讀取並將其寫入cp1252格式的作者

byte buf[] = new byte[8192]; 
InputStream is = new FileInputStream(f); 
ByteArrayOutputStream oos = new ByteArrayOutputStream(); 
int c=0; 
while ((c = is.read(buf)) != -1) { 
    oos.write(buf, 0, c); 
} 
byte out[] = oos.toByteArray(); 
String str = oos.toString(out,"UTF-8"); 
char[] ch = str.toCharArray(); 
writer.write(ch); 
is.close(); 
oos.close(); 

但由於文本不可讀(未正確轉換),輸出錯誤。我該如何解決 ?

+1

「f」包含什麼?這是一個真正的PDF文件嗎? –

+0

* UTF-8格式的pdf文件* - 這是什麼? PDF是一種二進制格式。句號。 – mkl

+0

其pdf文件: 文件f =新文件(「C:\ Users \ myfile.pdf」); 我檢查了文件的屬性,並在日食它說它的編碼是默認的UTF-8 –

回答

0

嘗試從PDF文件讀取時可能遇到錯誤。嘗試使用PDFBox從PDF文件中提取文本。這可能是最好的方法之一。一旦你有所需的文本,你可以使用cp1252編碼保存它。

您可以從here

檢查出使用PDFBox的文本提取的例子關於轉換爲CP1252,如果你使用的是Windows機器,那麼默認的編碼是CP1252。所以簡單地試着保存文本應該希望保存在cp1252編碼。

相關問題