坑爹的Volley StringRequest 【String getBytes 理解】

    今日从服务器上获取txt文件显示,因为内容是中文,所以出现了乱码,编码问题嘛,随便搞搞。但是怎么的都不行,最后去比较每个字节。发现服务器TXT文件编码为UTF-8。app端也是用UTF-8来解析,没毛病,为啥就显示乱码呢。


    也算是重温了下基础,分别将服务器端的返回。分别用getBytes("UTF-8")和getBytes("GBK")。发现返回的字节数组长度还不同。隐约发现了问题。返回的字节数组都有丢失,怎么可能能正常显示呢。比较了服务器的原始返回和getBytes()已经完全不一样了。最终在Vollery的StringRequest中的parseCharset中发现。如果没有发现服务器字符集配置。默认返回ISO-8859-1。坑爹呢。不亏是老外写的代码,默认为啥不返回UTF-8呢。用ISO-8859-1的String.getBytes("UTF-8")。肯定无法还原原始数据。所以对于想要在字节数组和String之间相互转换并且没有损失。就得以什么编码生成String的,就以什么编码getBytes.这样就能获得原始的字节数组了。然后就可以用正确的编码来显示了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值