一、编码表的由来:计算机只能识别二进制数据,早期由来是电信号,为了方便计算机,让它识别各个国家的文字,就将各个国家的文字用数字表示,就将各个国家的文字用数字来表示,并一一对应,这就形成编码表。
ASCII:美国标准信息交换码,用一个字节的7位表示。
ISO8859-1:拉丁码表,用一个字节的8位表示。
GB2312:中文编码表,用两个字节完成,每个字节都是负数,也就是说最高位是1.
GBK:中国的中文编码表升级,融合了更多的中文字符号,也是用两个字节完成,第一个字节是负数,第二个字节不一定是负数。
Unicode:国际标准码,融合了多种文字,两个字节表示,java语言使用的就是unicode。
UTF-8:最多用三个字节来表示一个字符。
文字编解码:
编码:字符串------>字节数组 Str.getBytes();
解码:字节数组------->字符串 new String(buf[])
切割字符串Demo:
public static void main(String[] args) throws IOException {
* 你好:-60,-29,-70,-61 在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符。 但对应的字节数不同,一个汉字占两个字节。 定义一个方法,按照最大的字节数来取子串。如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个, 那么半个就要舍弃。如果去四个字节就是“ab你”,取五个字节还是“ab你”. 思路: 1,需要指定码表,默认是GBK。2,咋判断中文的一半呢?对于