java 编码转换类_Java:String类和编码转换

Java:String类和编码转换

2021-01-04 20:44:47

乱码问题始终是编码方式不同而导致的。所以只要保证编码方式和解码方式一致,就不会出现乱码。

String 类与编码

一、构造方法

String(byte[] bytes, int offset, int length)

通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。

String(byte[] bytes, int offset, int length, Charset charset)

通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。

String(byte[] bytes, int offset, int length, String charsetName)

通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。

String(char[] value, int offset, int count)

分配一个新的 String,它包含取自字符数组参数一个子数组的字符。

String(int[] codePoints, int offset, int count)

分配一个新的 String,它包含 Unicode 代码点数组参数一个子数组的字符。

二、实例

1.将“你好”转换为UTF-8字节码

String str = "你好";

Charset charset_utf8 = Charset.forName("utf-8");

ByteBuffer buff = charset_utf8.encode(str);

byte[] bArr = new byte[buff.remaining()];

buff.get(bArr);

2.把字符串以指定编码转为byte[]和把byte[]以指定编码转为字符串。

public static void Utf8ToUnicode() throws UnsupportedEncodingException {

String str="中文";

byte[] bArr = str.getBytes("unicode"); //bArr[0]=fe,bArr[1]=ff;从bArr[2]开始为编码内容

String str1 = new String(bArr, "utf16"); //utf16和unicode编码一样

System.out.println(str1);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值