31

utf-8エンコーディングのテキストファイルの読み取りに問題があります.netbeans 7.2.1プラットフォームでJavaを使用しています.

UTF-8 javaproject==>右クリック==>プロパティ==>ソース==>UTF-8を処理するようにJavaプロジェクトをすでに構成しました

それでも不明な文字出力が得られます: ����� �������� ���� �</p>

コード:

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);
}

他のアイデアはありますか?

ありがとう

4

5 に答える 5

42

使用する

    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を引用符で囲む必要があります

于 2013-02-17T06:29:23.513 に答える
10

あなたはファイルを正しく読んでいますが、問題はのデフォルトのエンコーディングにあるようですSystem.outUTF-8これを試して文字列を印刷してください-

PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(str);
于 2013-02-17T05:17:43.603 に答える