java写了个获取本机的mac的信息,用的是ipconfig /all命令。在cmd中运行正常,中文午乱码。程序运行乱码

求指教,谢谢!

第1个回答  2013-07-18
这是编码的问题,你这是ISO-8859-1编码英文正常,中文乱码,电脑默认为GBK,你获取MAC信息时必须指定编码为gbk或utf-8
第2个回答  2013-07-18
/*不依赖操作系统命令行获取网卡MAC*/   
import java.net.*;
import java.util.*;
/**
 * @author Hardneedl
 */
class MACDemo {
    private static String hexByte(byte b) {
        String s = "000000" + Integer.toHexString(b).toUpperCase();
        return s.substring(s.length() - 2);
    }
    private static String[] getMac() throws SocketException {
        Enumeration<NetworkInterface> el = NetworkInterface.getNetworkInterfaces();
        List<String>rs = new ArrayList<String>();
        while (el.hasMoreElements()) {
            byte[] mac = el.nextElement().getHardwareAddress();
            if (mac == null) continue;
            StringBuilder builder = new StringBuilder();
            for (byte b : mac) {
                builder.append(hexByte(b));
                builder.append('-');
            }
            rs.add( builder.deleteCharAt(builder.length() - 1).toString() );
        }
        return rs.toArray(new String[]{});
    }
    public static void main(String[] args) throws Exception {
        for (String macAddress : getMac())
            System.out.printf("Mac:%s\r\n",macAddress);
    }
}

第3个回答  2013-07-18
你看看你的工作空间设置的是什么编码格式,这个是你程序中输出的吗,输出的时候可以设置一下编码new string()
第4个回答  2013-07-18
编码问题,设置成GBK或者是utf-8应该就可以了
第5个回答  2013-07-18
没有java代码不是很确定,你可能需要在java中进行转码