可以把普通byte数组传给String吗?

来源:1-1 文件的编码

愚人船

2015-11-02 18:02

比如  byte[] byte1={34,57};

String str=new String(byte1);

syso(str);

输出结果是乱码的

写回答 关注

4回答

  • leaf_xiao
    2015-11-09 15:43:54

    String 有很多构造方法的,输出结果乱码的话,你可以指定一下字符集编码。

    String str = new String(byte1,"UTF-8");

    如果还是乱码,可以把 UTF-8,换成其他字符集编码,比如GBK。

  • 天启之魂
    2015-11-02 21:11:59

    输出乱码是码表的原因 如果是的字节数组中的数值正好可以被默认码表解析出来 有对应的汉字 那么就不是乱码了

  • 愚人船
    2015-11-02 19:12:09

    (⊙o⊙)…  syso不是快捷键吗? 以为都大家都懂呢

    看到老师把byte[]传给String   所以我就想试试   结果输出是乱码

  • 理想像吹弹可破的泡泡
    2015-11-02 18:16:36

    byte[] byteGrp={34,57};
            String str=new String(byteGrp);
            System.out.println(str);


    首先,这个是在eclipse运行一下就可以验证的问题,

    另外我不明白这个有什么实用意义,String其实是字符数组,为什么非要用到了byte数组来拼成,你告诉我什么项目遇到了这样的需求吧~

    第三行syso(str)我就怀疑你故意写错的,正如名字“愚人船”~

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133769 学习 · 1030 问题

查看课程

相似问题