中文乱码的本质

平时我们开发中传输的数据用的最多的是String,我们在使用时往往new String(),没有人去关注的存储编码,乱码问题的本质就是由于不同编码的字节(byte)转化时无法正确转化

 

String 是具有编码格式的,

     

  1. String 类可以按照编码格式存储byte(字节)在磁盘中,不同的编码格式存储到磁盘中的字节(byte)是不同的,
  2. 磁盘中的字节(byte)与String 相互转化过程中如果采用的编码不一样很可能出现乱码的

 

我们在创建新对象时,new String() ,是有默认编码的,调用了java.nio.charset.Charset.defaultCharset() 方法,二者default 值可以通过及方式设置

所以我们在new String()时要注意编码问题,如果在一个系统中是没有问题的,但多个系统中可能会出现中文乱码的问题,乱码大多数都是转码过程中出现了问题,

是可以转码解决的

new String(str1.getByte("srcCharSet"),"desCharSet") 将srcCharSet存储的字节(byte)转化为desCharSet存储的字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值