900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java gb18030 转 utf-8_Java:GB18030字节数组与UTF8互转

java gb18030 转 utf-8_Java:GB18030字节数组与UTF8互转

时间:2020-01-09 03:44:48

相关推荐

java gb18030 转 utf-8_Java:GB18030字节数组与UTF8互转

JDK:1.8

当我们需要把一个以GB18030编码的字节数组转换为UTF8字符串,我们可以使用nio中的编解码。

1.GB18030字节数组转换为UTF-8字符串

public static String gB18030ByteArrayToUtf8String(byte[] bytes) {

ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);

CharBuffer gb18030 = Charset.forName("GB18030").decode(byteBuffer);

ByteBuffer utf8 = Charset.forName("UTF8").encode(gb18030);

return new String(utf8.array());

}

这样从字面上很好理解,以GB18030的方式解码字节数组,获取字符缓冲区。以UTF-8的方式,对该字符编码,最后获取字符串。

2.字符串转换为GB18030字节数组

public static byte[] utf8ToGb18030ByteArray(String str) {

ByteBuffer gb18030 = Charset.forName("GB18030").encode(str);

return gb18030.array();

}

3.更多的话

可能一部分人会对String中的getBytes与new String望而生畏,那不妨使用nio中提供的这种作法,简单且易懂。想知道你所需要转换的字符编码是否包含其中?可以使用下面的方法进行判断:

Charset.isSupported("X-UTF-32LE-BOM")

如何查看所有支持的字符集呢?(一般我们用不到这个)

Charset.availableCharsets()

4.图示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。