このメソッドの出力に応じて、UTF-8 または Windows-1252 としてファイルを読み取ろうとしています。
public Charset getCorrectCharsetToApply() {
// Returns a Charset for either UTF-8 or Windows-1252.
}
これまでのところ、私は持っています:
String fileName = getFileNameToReadFromUserInput();
InputStream is = new ByteArrayInputStream(fileName.getBytes());
InputStreamReader isr = new InputStreamReader(is, getCorrectCharsetToApply());
BufferedReader buffReader = new BufferedReader(isr);
私が抱えている問題は、BufferedReader
インスタンスをFileReader
.
さらに:
- ファイル自体の名前 (
fileName
) が特定のものであるとは信頼できませんCharset
。ファイル名に UTF-8 文字が含まれることもあれば、Windows-1252 が含まれることもあります。ファイルの内容についても同様です (ただし、ファイル名とファイルの内容が常に一致する文字セットを持つ場合)。 getCorrectCharsetToApply()
適用する文字セットを選択できるのは内部のロジックのみであるため、このメソッドを呼び出す前にその名前でファイルを読み取ろうとすると、Java が間違ったエンコーディングでファイル名を読み取ろうとする結果が生じる可能性があります。 !
前もって感謝します!