有个字符串是我*你,*是一个乱码的字符串,打印出来的byte是:
[-26, -120, -111, -33, -110, -62, -98, -28, -67, -96]
其中,-26, -120, -111是我,-28, -67, -96是你。
中间4个字节的内容是乱码,请问如何把中间乱码的内容去掉,将字符串变成“我你”。
[-26, -120, -111, -33, -110, -62, -98, -28, -67, -96]
其中,-26, -120, -111是我,-28, -67, -96是你。
中间4个字节的内容是乱码,请问如何把中间乱码的内容去掉,将字符串变成“我你”。
原始码(16进制) UTF-8编码(二进制)
--------------------------------------------
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
……
--------------------------------------------
把里面不能构成正常UTF-8的字符丢掉。
例如红色部分就应该丢掉
有没有现成的api处理乱码字符的。我用CharsetDecoder也无法处理这些非法字符
有没有现成的api处理乱码字符的。我用CharsetDecoder也无法处理这些非法字符
那个我倒是不知道,只不过大多数的乱码还是能用asicc判断来去掉的
str=str.replaceAll("[^\u0020-\u9FA5]", "");
这个ASICC的范围是可显示的字符到中文最后一个 的范围。