这不是上一个问题的重复,我发现问题出在流程上。
我的程序有问题,Java 进程的 InputStream 中似乎丢失了特殊字符。
我正在使用的代码如下:
String command = "/usr/local/bin/getTitle <URL>";
Process shellCommand = Runtime.getRuntime().exec(command);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(shellCommand.getInputStream(), "UTF-8"));
String output = null;
while ((output = stdInput.readLine()) != null) {
System.out.println(output);
}
如果我从命令行运行“命令”,我会得到以下输出:
PSY_-_GANGNAM_STYLE_(강남스타일)_M_V
但是, System.out.println(output); 的输出 如下:
PSY_-_GANGNAM_STYLE_()_M_V
这完全破坏了我的程序。
我完全被难住了,在我的搜索中我什至没有找到任何与此相关的东西。非常感谢任何帮助!提前致谢。
更新:
如果我更改命令如下:
String command="echo 'PSY_-_GANGNAM_STYLE_(강남스 타일)_M_V'";
然后在打印输出时正确显示特殊字符。这是否有助于理解问题所在?