NetBeans 7.2.1プラットフォームでJavaを使用しているutf-8エンコーディングのテキストファイルの読み取りに問題があります
UTF-8 javaproject ==>右クリック==> properties ==> source ==> UTF-8を処理するためにJavaプロジェクトを既に構成しました
ただし、未知の文字出力は取得されます:������������������
コード:
File fileDirs = new File("C:\\file.txt");
BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(fileDirs), "UTF-8"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
他のアイデアはありますか?
ありがとう
つかいます
import Java.io.BufferedReader;
import Java.io.File;
import Java.io.FileInputStream;
import Java.io.IOException;
import Java.io.InputStreamReader;
import Java.io.UnsupportedEncodingException;
public class test {
public static void main(String[] args){
try {
File fileDir = new File("PATH_TO_FILE");
BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(fileDir), "UTF-8"));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
}
catch (UnsupportedEncodingException e)
{
System.out.println(e.getMessage());
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
UTF-8を引用符で囲む必要があります
ファイルを正しく読んでいますが、問題はSystem.out
のデフォルトエンコーディングにあるようです。これを試してUTF-8
文字列を印刷してください-
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(str);
Charsetパラメーターを使用して、InputStreamReaderのエンコードを指定する必要があります。
Charset inputCharset = Charset.forName("ISO-8859-1");
InputStreamReader isr = new InputStreamReader(fis, inputCharset));
これは私の仕事です。私はあなたを助けることを望みます。
特殊文字が��としてマークするのを見つけるたびに、同じ問題に遭遇しました。これを解決するために、エンコードを使用してみました:ISO-8859-1
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("txtPath"),"ISO-8859-1"));
while ((line = br.readLine()) != null) {
}
これがこの投稿を見た人の助けになることを願っています。
[OK]を、私は間違いなくパーティーに遅れていますが、まだ最適なソリューションを探しているなら、私は次を使用します(Java 8)
Charset inputCharset = Charset.forName("ISO-8859-1");
Path pathToFile = ....
try (BufferedReader br = Files.newBufferedReader( pathToFile, inputCharset )) {
...
}