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】,在淘宝搜索到我们。收藏有礼哦!
  • 相关阅读:
    NYOJ 10 skiing DFS+DP
    51nod 1270 数组的最大代价
    HDU 4635 Strongly connected
    HDU 4612 Warm up
    POJ 3177 Redundant Paths
    HDU 1629 迷宫城堡
    uva 796
    uva 315
    POJ 3180 The Cow Prom
    POJ 1236 Network of Schools
  • 原文地址:https://www.cnblogs.com/javawer/p/3287478.html
Copyright © 2011-2022 走看看