java怎么把map转成gbk编码_请教一下 Java 如何把一个 String 转成 GBK 编码?

9

104 天前

public class EncodingUtil {

/**

* 将原正确编码的字符串 src 转化为 srcCharset 的字符串

*

* 前提是: 确保原字符串的编码是无损的(完整的). 无需知道原字符串的具体编码, 转化为目标编码的字符串由 Java 库自动实现,无需自己手动实现.

* 如果原字符串不能转化为目标编码,将会抛出 UnsupportedEncodingException

* @param src

* @param srcCharset

* @param destCharset

* @return

*/

public static String convertEncodingString(String src, Charset srcCharset, Charset destCharset){

byte[] bytes = src.getBytes(srcCharset);

return new String(bytes, destCharset);

}

/**

* 将编码为 srcCharset 的字节数组 src 转化为编码为 desCharset 的字节数组

* @param src

* @param srcCharSet

* @param destCharset

* @return

*/

public static byte[] convertEncodingBytes(byte[] src, Charset srcCharSet, Charset destCharset){

String s = new String(src, srcCharSet);

return s.getBytes(destCharset);

}

public static String byteToHex(byte... byteArr){

if (byteArr == null || byteArr.length == 0){

return "";

}else {

StringBuilder sb = new StringBuilder();

String tmp = null;

for (byte b : byteArr) {

tmp = Integer.toHexString(b);

//byte 进行运算时,会自动转化为 int,否则可能会出错

if (b >>> 31 == 1) {

//最高位为 1, 负数

sb.append(tmp.substring(6));

} else {

//最高位为 0,正数

if (tmp.length() < 2){

sb.append('0');

}

sb.append(tmp);

}

sb.append(' ');

}

//delete last space

sb.deleteCharAt(sb.length() - 1);

return sb.toString();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值