JAVA字符串编码转换

从一个txt中获得字符串str,默认编码为GBK,现在想重新编码获得UTF-8编码的字符串。

String str = "......................";
CharBuffer CH = CharBuffer.wrap(str.toCharArray()); //把字符串转换为字符数组刷进CharBuffer缓冲区
CharsetEncoder ch = Charset.forName("UTF-8").newEncoder();//构造新的编码器,编码字符集为"UTF-8";
ByteBuffer bb = ch.encode(CH);//用新的编码器编码缓存区CH数据,获得“UTF-8”编码的ByteBuffer缓冲区。
String str_2 = new String(bb.array(),"UTF-8");//构造新的字符串,编码已经改变,所以要指定解码为"UTF-8";
System.out.println(str_2);

此方法适合原始数据单字符为1或2字节,单字符为多字节的没测试,应该就不行。

你可能感兴趣的:(java)