java中的元音变换问题

时间:2013-01-16 12:13:16

标签: java

我正在尝试通过控制台读取一些数据并将其写入文件。当来自控制台的数据具有元音变音字符时,我遇到了问题。打印出'?'而不是变音字符。请在下面找到我的代码。有人可以帮助我吗

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

1 个答案:

答案 0 :(得分:2)

尝试使用cmd /U启动cmd并将输入读为UTF-16LE。

有关详细信息,请参阅此问题What encoding/code page is cmd.exe using?