当前位置: 技术问答>java相关
把char[]传给byte[]时怎么变大了?
来源: 互联网 发布时间:2015-04-24
本文导语: 我的程序是这样的: char[] c = ...; String s = String.copyValueOf(c); byte[] b = sT.getBytes(); 传过来以后b就比c大了,在结尾多了几个乱字符,c里面包含有中文。 该怎么办才能把多出的几个字符去掉,让c和b变成一样的。 ...
我的程序是这样的:
char[] c = ...;
String s = String.copyValueOf(c);
byte[] b = sT.getBytes();
传过来以后b就比c大了,在结尾多了几个乱字符,c里面包含有中文。
该怎么办才能把多出的几个字符去掉,让c和b变成一样的。
char[] c = ...;
String s = String.copyValueOf(c);
byte[] b = sT.getBytes();
传过来以后b就比c大了,在结尾多了几个乱字符,c里面包含有中文。
该怎么办才能把多出的几个字符去掉,让c和b变成一样的。
|
byte是8位的,char是16位的,当然要多出来了,如果想变成一样大的,不适丢失精度了么
|
b的length肯的比c的大,如果里面有中文的话,一个汉字算一个char。
但是结尾的字符确不应该有。
byte[] b = s.getBytes("GBK");
试试。
但是结尾的字符确不应该有。
byte[] b = s.getBytes("GBK");
试试。
|
byte[] b = sT.getBytes("8859_1");
长度不变
但中文数据丢失
长度不变
但中文数据丢失