如何彻底解决Java命令行界面显示乱码的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计461个文字,预计阅读时间需要2分钟。
为了解决在执行Java命令时返回的结果中中文乱码的问题,可以通过设置系统属性来指定编码格式。以下是一个简单的Java程序,用于演示如何设置这些系统属性:
javapublic static void main(String[] args) { // 设置系统属性以解决中文乱码问题 System.setProperty(file.encoding, GBK); System.setProperty(default.client.encoding, GBK); System.setProperty(user.language, zh); System.setProperty(user.region, CN);
// 执行ping命令 try { Process process=Runtime.getRuntime().exec(ping www.example.com); BufferedReader reader=new BufferedReader(new InputStreamReader(process.getInputStream(), GBK)); String line; while ((line=reader.readLine()) !=null) { System.out.println(line); } reader.close(); process.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); }}
虚拟机参数加上
-Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Duser.language=zh -Duser.region=CN
补充:java执行cmd命令,返回结果中文乱码问题解决
public static void main(String[] args) { try { // 执行ping命令 Process process = Runtime.getRuntime().exec("cmd /c e:&dir"); BufferedReader br = new BufferedReader( new InputStreamReader( process.getInputStream(), Charset.forName("GBK") ) ); String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } }
我的代码
package net.bigwrok; import java.io.BufferedReader; import java.io.InputStreamReader; import java.nio.charset.Charset; public class Test2_net { public static void main(String[] args) { BufferedReader br = null; try { Process p = Runtime.getRuntime().exec("ping 127.0.0.1"); br = new BufferedReader(new InputStreamReader(p.getInputStream(),Charset.forName("GBK"))); String line = null; StringBuilder sb=new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line+"\n"); } System.out.println(sb.toString()); } catch (Exception e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (Exception e) { e.printStackTrace(); } } } } }
结果
以上为个人经验,希望能给大家一个参考,也希望大家多多支持易盾网络。如有错误或未考虑完全的地方,望不吝赐教。
本文共计461个文字,预计阅读时间需要2分钟。
为了解决在执行Java命令时返回的结果中中文乱码的问题,可以通过设置系统属性来指定编码格式。以下是一个简单的Java程序,用于演示如何设置这些系统属性:
javapublic static void main(String[] args) { // 设置系统属性以解决中文乱码问题 System.setProperty(file.encoding, GBK); System.setProperty(default.client.encoding, GBK); System.setProperty(user.language, zh); System.setProperty(user.region, CN);
// 执行ping命令 try { Process process=Runtime.getRuntime().exec(ping www.example.com); BufferedReader reader=new BufferedReader(new InputStreamReader(process.getInputStream(), GBK)); String line; while ((line=reader.readLine()) !=null) { System.out.println(line); } reader.close(); process.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); }}
虚拟机参数加上
-Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Duser.language=zh -Duser.region=CN
补充:java执行cmd命令,返回结果中文乱码问题解决
public static void main(String[] args) { try { // 执行ping命令 Process process = Runtime.getRuntime().exec("cmd /c e:&dir"); BufferedReader br = new BufferedReader( new InputStreamReader( process.getInputStream(), Charset.forName("GBK") ) ); String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } }
我的代码
package net.bigwrok; import java.io.BufferedReader; import java.io.InputStreamReader; import java.nio.charset.Charset; public class Test2_net { public static void main(String[] args) { BufferedReader br = null; try { Process p = Runtime.getRuntime().exec("ping 127.0.0.1"); br = new BufferedReader(new InputStreamReader(p.getInputStream(),Charset.forName("GBK"))); String line = null; StringBuilder sb=new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line+"\n"); } System.out.println(sb.toString()); } catch (Exception e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (Exception e) { e.printStackTrace(); } } } } }
结果
以上为个人经验,希望能给大家一个参考,也希望大家多多支持易盾网络。如有错误或未考虑完全的地方,望不吝赐教。

