zoukankan      html  css  js  c++  java
  • java数据

    因为曾经干了啥事儿,才印象特别深刻。

    将byte存入String的后果

    String res = “”;

    res += (char) 0xc3;

    byte[] bytes = res.getBytes();

          这是曾经的一部分程序。习惯使用String,并在之前并没有遇到任何错误。但是这次遇到了。

    bytes里面不止一个byte,而是两个。这导致“数据异常”。

           原来,java中的char是2个字节。如果小于256,在获取字符串字节时,就被认为是一个byte,但是大于时,就被识别为2个字节。

           改进:后来,学习了解了ByteArrayOutputStream,用它来存取具有扩张性的字节数组,再好不过。

    ByteArrayOutputStream输出的编码问题

    ByteArrayOutputStream stream = new ByteArrayOutputStream();

    ……

    stream.toString();

             一般情况下,直接toString没有什么问题。但是,一旦byte位上超过127时,就可能出现多字节现象。

    问题: widows运行环境默认编码gbk。运行toString时,原本0xc3一个字节,编程了3个字节的内容。

    处理:指定编码——stream.toString(“utf-8”);

    好处:指定了编码后,就保证了唯一性。除非系统不支持,否则都不会有不同的结果出来。

    ------------------------------------------------------------------------------------------------------------------------------------------ 需要荷兰版牛栏、荷兰美素、母婴用品的攻城师、设计师朋友,欢迎关顾【七彩母婴店】【http://qicaoyun.taobao.com】。凡是从博客园得知信息的,全店商品,均可优惠,请告知客服哦。你也可以通过淘代码【D5867219】,在淘宝搜索到我们。收藏有礼哦!
  • 相关阅读:
    GRYZ20211029模拟赛解题报告
    LG 题解 CF1545B AquaMoon and Chess
    GRYZ10.27模拟赛解题报告
    开博客通告
    民科吧编程赛 题解
    民科吧编程赛 试题
    四则运算开平方——对民科吧编程大赛题目的再探究
    The First
    机械手相机9点坐标标定-基于C#+EmguCV
    Emgucv图像处理工具
  • 原文地址:https://www.cnblogs.com/javawer/p/3287478.html
Copyright © 2011-2022 走看看