byte[] b = "︽⊙_⊙︽".getBytes("gb2312");
然后new String(b,"gb2312")
结果输出:?⊙_⊙?
是gb2312本身就不包含‘︽’这个字符么?
Java默认的编码格式似乎不是utf-8,所以在转换的时候可能会有些奇怪的现象 比如byte长度发生改变等
转换的时候试着设定一下编码格式?
gb2312是不支持这个字符的,你改成utf8就发现没有问题了
gb2312编码只包含几千个汉字和有限的符号,换成utf-8看看
修改转码方式为utf-8。
可能gb2312导致了机器码字节长度发生改变,换成UTF-8试试
我也遇到过,rsa加密后的字节数组无法正常转字符串,需要用到encoder类,解密后倒是不用,
有可能是编码格式的问题,我建议你用utf-8比较好一点
特殊符号,汉字有时候会有这种情况