第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中进行转码