• 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】,在淘宝搜索到我们。收藏有礼哦!
  • 相关阅读:
    linux初始密码Mysql
    lamp整个打包
    模拟小球碰撞后返回
    Linux图形界面卡死
    非模态对话框
    菜单
    键盘消息简单示例
    菜单练习
    模态对话框练习
    阶段知识整合(画笔,画刷,字体)
  • 原文地址:https://www.cnblogs.com/javawer/p/3287478.html
Copyright © 2020-2023  润新知