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】,在淘宝搜索到我们。收藏有礼哦!
  • 相关阅读:
    [转]asp.net core中的View Component
    [转] 三层架构、MVC
    [转]Javascript异步编程之三Promise: 像堆积木一样组织你的异步流程
    T4语法快速入门
    [转]ASP.NET Core 十种方式扩展你的 Views
    (装机)关于WINRE/ESP/LRS_ESP/MSR/PBR这些分区
    C#设计模式系列目录
    [转]RESTful API 设计指南
    .gitignore释疑
    [转]Subdirectory Checkouts with git sparse-checkout
  • 原文地址:https://www.cnblogs.com/javawer/p/3287478.html
Copyright © 2011-2022 走看看