0

ファイルを読み込むプログラムがあります。このファイルには、これまでに見たことのないクレイジーな文字が含まれています。このファイルの目的は、特定の情報を解析して SQL ステートメントにすることです。

ファイルのこの行に到達すると、「「…の詳細(タイトルの名前)」を読んでください」(水平の省略記号と右/左の引用符に注意してください)、これに出力されます:

�(タイトルの名前�の詳細</p>

正しい文字を自分で定義した文字に置き換えたいだけです。私が試してみました:

st = st.replaceAll("…","...");
st = st.replaceAll("\u2026","...");

これは私がファイルを読む方法です:

 FileInputStream file = new FileInputStream(filePath);
 DataInputStream in = new DataInputStream(file); 
 BufferedReader br = new BufferedReader(new InputStreamReader(in));

そして、私が覚えていない他のこと。この一見単純なタスクをどのように実行できますか?

4

2 に答える 2

1

特殊文字を置き換える前に、ファイルの読み取り時にエンコーディングを指定する必要があります...

FileInputStream inputStream = new FileInputStream("input.txt");
// Specify the enconding
InputStreamReader streamReader = new InputStreamReader(inputStream, "UTF-8");
BufferedReader in = new BufferedReader(streamReader);
于 2012-04-26T19:52:05.927 に答える
0

絶対に必要でない限り、これらの奇妙な (まだ意味のある) 文字を実際に削除する必要はありません...

InputStreamReaderのドキュメントを見て、ファイルを読み取るときに正しいエンコーディングを指定してください。

于 2012-04-26T19:38:16.470 に答える