4

コンソールを介してデータを読み取り、それをファイルに書き込もうとしています。コンソールからのデータにウムラウト文字が含まれていると問題が発生します。「?」が出力されます。ウムラウト文字の代わりに。同じコードの下にあるものを見つけてください。誰か助けてくれませんか

       String cmd = "cmd /C si viewproject"+ cmdLine+" --recurse --fields=indent,name --project="+name;

        Process p = Runtime.getRuntime().exec(cmd);
        BufferedReader in = new BufferedReader(new InputStreamReader(
                p.getInputStream()));
        String line = null;

        File filename = new File(System.getProperty("java.io.tmpdir"),
                "Project" + ".tmp");

        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(filename), Charset.forName("UTF-8").newEncoder());
        while ((line = in.readLine()) != null) {

            osw.write(line);
            osw.write("\n");
        }
        osw.close();
4

1 に答える 1

2

cmd を開始してcmd /U、入力を UTF-16LE として読み取ってみてください。

この質問を参照してください cmd.exe はどのエンコーディング/コードページを使用していますか? 詳細については。

于 2013-01-16T12:17:25.880 に答える