通过char将String转换成byte数组
这里没有问题。。。。你说错了吧?。。。。
恩,我说的不准确,这么写其实也是可以的。
[解决办法]
Java的字符集转化都有API的,包括GBK, 研究getBytes()去。
[解决办法]
不知道为何你非要用char来转, 如果实在要用的话,看看这个方法能否满足你的要求吧
package study.string.length;
import java.io.UnsupportedEncodingException;
import sun.io.CharToByteConverter;
import sun.io.MalformedInputException;
public class StrLenght {
public static void main(String[] args) throws UnsupportedEncodingException, MalformedInputException {
String str = "a中";
byte[] chars = str.getBytes();
for (int x = 0; x < chars.length; x++) {
System.out.println(chars[x]);
}
print(str);
}
public static void print(String str) throws UnsupportedEncodingException, MalformedInputException {
byte[] result = new byte[str.getBytes().length];
int p = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
byte l = (byte) c;
byte h = (byte) (c >> 8);
if (h == 0) {
result[p++] = l;
} else {
char[] cs = new char[1];
cs[0] = c;
CharToByteConverter converter = CharToByteConverter.getConverter("GBK");
byte[] br = converter.convertAll(cs);
result[p++] = br[0];
result[p++] = br[1];
}
}
for (int x = 0; x < result.length; x++) {
System.out.println(result[x]);
}
}
}