如果协议是自己定的话
可以用 ASCII 码的方式来拟定,最大的 127 就够了,也就是说 1 个字节的数值来存储一个字节的字符。
然后从头到尾的扫描进来,每八个二进制数(一个字节)换成一个 char 累加到 string 就 K.O. 了,我也上一份代码:
/**
* 从二进制到字符串
*
* @param todo
* 要处理的二进制字符串
* @return 分析后的字符串
*/
public static String getString(String todo) {
// [Neo] 只过滤了 空格和逗号,其他字符自己处理吧
String bin = todo.trim().replace(" ", "").replace(",", "");
String str = "";
for (int i = 0; i < bin.length(); i += 8) {
try {
str += (char) Integer.valueOf(bin.substring(i, i + 8), 2)
.intValue();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return str;
}
调用的实例:
String todo = "0100 1110, 0110 0101, 0110 1111";
System.out.println("getString: " + getString(todo));
我的输出结果是: Neo
祝好,
斑驳敬上