软件:java8
问题
今天在java的二进制byte和string类型的编解码中遇到了阻碍,因此仔细研究了一下相关的编解码问题。
本文介绍了java中 byte[] 和 String 的相互转换。
通过String的getBytes()方法是可以得到一个字符串的字节数组,但特别要注意的是,getBytes()方法将返回该操作系统默认的编码格式的字节数组。
string转byte[] 无中文
String strHello = "Hello World";
byte[] bHello = strHello.getBytes();byte[]转string 无中文
String strHello = new String(bHello);
string转byte[] 有中文
String strChinese = "大吉大利";
byte[] bChinese_gbk = strChinese.getBytes("GBK"); //GBK编码格式
byte[] bChinese_utf8 = strChinese.getBytes("UTF-8"); // UFT-8编码格式
byte[] bChinese_iso88591 = strChinese.getBytes("ISO8859-1");byte[]转string 有中文
String strChinese_gbk = new String(bChinese_gbk,"GBK");
String strChinese_utf8 = new String(bChinese_utf8,"UTF-8");
String strChinese_iso88591 = new String(bChinese_iso88591,"ISO8859-1");
// "ISO8859-1"编码中无中文字符,因此strChinese_iso88591无法还原得到中文