package main;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
/**
* @author jeff.zhan
* 2016年10月30日 上午11:48:54
*
*/
public class StringUnicode8byteArray {
public static void main(String[] args) {
String str = "abcd%$";
// String 转 byte[]
Charset cset = Charset.forName("ISO-8859-1");
ByteBuffer buffer = cset.encode(str);
byte[] bytes = buffer.array();
for (byte b : bytes) {
System.out.print(b + " ");
}
// byte[] 转 String
ByteBuffer buffer2 = ByteBuffer.wrap(bytes, 0, bytes.length);
CharBuffer cBuffer = cset.decode(buffer2);
String str2 = cBuffer.toString();
System.out.println(str2);
}
}
需要注意的是,Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。ISO-8859-1、UTF-8是Unicode的实现方式之一。
关于有关字符编码的知识,这篇博文写的时分通俗易懂字符编码笔记