我正在开发一个Java代码。现在我需要使用REST函数进行命令行转换,我需要将标准从它转移到Java代码。 我的问题是我无法从REST函数中获取正确的日语单词,因为命令行的字符代码不适合日语。
以下是示例代码。
private String getFirstLineOfStdOut(Process p) {
String first_line_value = "";
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
first_line_value = br.readLine(); // because it is one line output.
} catch (IOException e) {
e.printStackTrace();
}
return first_line_value;
}
public void runCommandLine(String[] commands) {
ProcessBuilder pb_check_char_code = new ProcessBuilder(commands);
Process process_check_char_code = null;
try {
process_check_char_code = pb_check_char_code.start();
} catch (IOException e) {
e.printStackTrace();
}
try {
process_check_char_code.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
String result = getFirstLineOfStdOut(process_check_char_code);
System.out.println(result);
}
我运行以下代码。
runCommandLine(new String[]{"C:\\Windows\\System32\\chcp.com"});
runCommandLine(new String[]{"C:\\Windows\\System32\\chcp.com", "65001"});
runCommandLine(new String[]{"sudo_translate_function", "English", "to", "Japanese", "hello"});
runCommandLine(new String[]{"C:\\Windows\\System32\\chcp.com"});
他们的结果。
現在のコード ページ: 932 // It means Active code page: 932
Active code page: 65001
壊れた文字 // broken words because of the inappropriate character code, 932
現在のコード ページ: 932 // It means Active code page: 932
适当的词应该是“こんにちは”而不是“壊れた文字”。 我担心他们无法在子流程中共享字符代码的变化。 我该怎么做才能分享字符代码的变化? 非常感谢你。