String的getBytes方法和String(byte[] bytes,Charset (转)

String的getBytes方法和String(byte[] bytes,Charset charset)组合使用解决jsp传递中文参数乱码的情况
public byte[] getBytes(Charset charset)
使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

此方法总是使用此字符集的默认替代 byte 数组替代错误输入和不可映射字符序列。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder 类。

 

参数:
charset - 用于编码 String 的 Charset
返回:
所得 byte 数组
 
public String(byte[] bytes,Charset charset)
通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。新 String 的长度是字符集的函数,因此可能不等于 byte 数组的长度。
此方法总是使用此字符集的默认替代字符串替代错误输入和不可映射字符序列。如果需要对解码过程进行更多控制,则应该使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的 byte
charset - 要用来解码 bytes 的 charset
for exam:
String name = request.getParameter(souceName);
String _name = new String(name.getBytes("iso-8859-1"), "gbk");
这里应该是浏览器会将请求URL,转成一个个字节(其实就相应于用了iso-8859-1编码方式转了,实质应该是直接转为二进制流的),所以到到controller层后,需用iso-8859-1转为一个个字节,后再用页面所用的编码格式来解析这些字节数据,再转为string(string在java是unicode编码的),便达到将浏览器转来的信息还原为正确的信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值