2016-03-21 5 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ファイルからの読み取り中にエラーが発生した可能性があります。 PDFファイルからテキストを抽出するには、PDFBoxを試してみてください。おそらくこれを行う最良の方法の1つです。必要なテキストを取得したら、cp1252エンコーディングを使用して保存することができます。 Windowsマシンを使用している場合

あなたは、CP1252への変換についてhere

からPDFBoxを使用してテキスト抽出の例をチェックアウトすることができ、デフォルトのエンコードはCP1252です。だから、単にテキストを保存しようとするとうまくいけば、 cp1252エンコーディングで保存してください。

関連する問題