示例:


@Testpublic void test1() throws UnsupportedEncodingException {String url = getUrl();HttpRequest request = HttpUtil.createGet(url);HttpResponse execute = request.execute();byte[] bytes = execute.bodyBytes();System.out.println("起始byte[]大小" + bytes.length);String str = new String(bytes, "utf-8");System.out.println("结束byte[]大小"+str.getBytes("utf-8").length);}

执行结果:

使用的编码集是utf-8

.
.
.

问题的解决

原因是默认是用UTF-8编码来生成String的,用System.getProperty(“sun.jnu.encoding”)可以得到当前默认编码是UTF-8。UTF-8是可变长度的编码,原来的字节数组就被改变了。在new String使用其他编码如GBK,GB2312的话一样也会导致字节数组发生变化,因此要想获取String里单字节数组,就应该使用iso8859-1编码。

ISO8859-1通常叫做Latin-1,Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符,其中 0~127的字符与ASCII码相同,它是单字节的编码方式,这样生成的String里的字节数组就跟原来的字节数组一样。

.

编码改成 ISO8859-1


与原byte[]就一致了

byte[]转String后再用String转回byte[]与起始byte[]不一致问题相关推荐

  1. C++知识点21——使用C++标准库(再谈string——string的搜索和数值转化)

    string的搜索操作一共6个 1.find size_t find (const string& str, size_t pos = 0) const; //从调用对象的下标pos处开始查找 ...

  2. java中main方法前的public static void及其后面的(String[] args)【笔记自用】

    为什么Java的main方法必须是public static void? 一. void 如下,像C, C++一样,将返回值类型改为int,再返回一个0,虽然编译通过,但是运行时会报错. 找到一种可理 ...

  3. 请别再拿“String s = new String(xyz);创建了多少个String实例”来面试了吧---转

    http://www.iteye.com/topic/774673 羞愧呀,不知道多少人干过,我也干过,面壁去! 这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的.  本来因为见得太 ...

  4. 将输入流读取成String后返回

    import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream;/*** 读取 ...

  5. C++知识点20——使用C++标准库(再谈string——string的大小、容量、交换与迭代器失效)

    1.string的大小与容量 size_t size() const; bool empty() const; void resize (size_t n); void resize (size_t ...

  6. 改进后的新String类

    改进后的新String类 对StringBad类进行修订,将它重命名为String了.首先,添加了复制构造函数和赋值运算符,使类能够正确管理类对象使用的内存.其次,由于知道对象何时被创建和释放,因此可 ...

  7. golang float转string后去除末尾的0

    go语言中,float转成string后,末尾会有多余的0,例如1.20000.显示效果不友好,可以使用以下方法去除末尾的0: floatValue := 123.222 result := strc ...

  8. C++知识点19——使用C++标准库(再谈string——string的初始化、赋值、添加、删除、访问)

    1.string的构造函数 string();//默认构造函数,默认初始化时调用 string (const string& str);//拷贝构造函数,拷贝初始化时调用 string (si ...

  9. MapReduce-从HBase读取数据处理后再写入HBase

    MapReduce-从HBase读取处理后再写入HBase 代码如下 package com.hbase.mapreduce;import java.io.IOException;import org ...

最新文章

  1. 传承乡邦文化,展示国学之美,联墨香飘远,文明花放红;
  2. 浙江大学-计算机中的数学(诙谐幽默的短视频)
  3. 31 socket客户端. 服务器 异常 语法
  4. 操作系统难点解析之进程和线程
  5. php异步轮询如何实现,深入剖析JavaScript异步之事件轮询
  6. 电脑重启f12怎么处理_电脑开机按f12怎么恢复系统(详解f12的使用方法)
  7. dsh linux,通过dsh批量管理Linux服务器(一)【感谢作者的无私分享】
  8. 关于麒麟座开发板串口打印乱码与其它工程用官方源码出问题的解决方案
  9. 北航计算机组成期末试题,北航-计算机组成题目汇总.pdf
  10. 建模simulink - xpc自定义模块
  11. 天下长安手游怎么用电脑玩 天下长安手游模拟器教程
  12. 2010年考研英语一阅读A题翻译加解析
  13. matlab 中| 、|| 、~ 含义
  14. stm32F103采用内部晶振8MHz时钟和外部晶振初始化代码
  15. PFC 5.0 离散元中的 wall history,监测位移和力
  16. 数据结构第二版(朱昌杰版)栈的应用之括号匹配
  17. CBAP备考|BABOK 01 业务分析核心概念
  18. Python 读取文件时报‘utf-8‘ codec can‘t decode byte 0xfc in position xxxx 的解决方法
  19. python脚本+任务计划-监测守护合同系统
  20. 4:eMMC command

热门文章

  1. 【iPhone12充电接触不良充不上电的终极解决--90%有效】
  2. 实现医生工作站的病历模板功能的代码(十)
  3. BIM模型HLoD设计文档
  4. java打印各种三角形
  5. 在线电影推荐网 使用Python+Django+Mysql开发技术 在线电影推荐系统 电影网站推荐系统 基于用户、物品的协同过滤推荐算法 个性化推荐算法开发 机器学习、人工智能、大数据分布式开发
  6. 【数据分析进阶】DCIC竞赛-task1 数据读取
  7. android listview数据错乱,AndroidListview 滑动过程中图片显示重复错乱解决方案
  8. 看看这些医疗差距在哪里?
  9. 大概是关于浏览器安全的最全总结
  10. 鸿蒙之境怎么不更新了,神都夜行录鸿蒙之境策驱三运高级特点分析 打法攻略分享...