utf-8编码
1、为什么要编码计算机底层保存任何数据都是二进制,而人类阅读需要图形化的内容,所以需要将图形化和二进制进行翻译。2、怎么编码用ascii举例(1)确定编码方案,每七位二进制表示一个字符(2)确定二进制对应字符的映射(字符表),用七位二进制取出对应的字符
3、有哪些编码方案(1)ascii
七位二进制表示一个字符
(2)utf-8
兼容ascii
字节数不确定
第一个字节最高位为0,表示一个字节,如0110 0001 表示a
第一个字节最高位为110x xxxx,表示两个字节,第二个字节10xx xxxx
第一个字节最高位为1110 xxxx,表示三个字节,第二/三个字节10xx xxxx
第一个字节最高位为1111 0xxx,表示四个字节,第二/三/四个字节10xx xxxx
‘王’字二进制 111001110001011
对应的二进制编码为 111001110100111001001011
String str = "111 001110 001011";
String bin = "111001111000111010001011";
System.out.println(binaryToChar(bin));
}
private static String binaryToChar(String binary) throws UnsupportedEncodingException {
byte[] bytes = new byte[binary.length()/8];
for(int i=0;i<binary.length()/8;i++){
String s=binary.substring(i*8,i*8+8);
bytes[i]=Integer.valueOf(s,2).byteValue();
}
return new String(bytes,StandardCharsets.UTF_8.name());
}
转载自:https://segmentfault.com/a/1190000041721108