如何将字节数组转换为字符串?

时间:2018-06-10 11:27:06

标签: android arrays string

我有一个字节数组,我想将其转换为android中的阿拉伯字符串。

     byte[] data = new byte[] {(byte)79,(byte)144,(byte)2,(byte)0,(byte)0,(byte)166,(byte)6,(byte)0,(byte)0,(byte)0,(byte)0,(byte)0,(byte)128,(byte)47,(byte)60,(byte)70,(byte)79,(byte)78,(byte)84,(byte)32,(byte)67,(byte)79,(byte)76,(byte)79,(byte)82,(byte)61,(byte)34,(byte)35,(byte)57,(byte)48,(byte)57,(byte)48,(byte)57,(byte)48,(byte)34,(byte)62,(byte)199,(byte)157,(byte)32,(byte)98,(byte)97,(byte)110,(byte)194,(byte)180,(byte)64,(byte)32,(byte)8,(byte)192,(byte)100,(byte)199,(byte)157,(byte)110,(byte)60,(byte)47,(byte)198,(byte)8,(byte)62,(byte)47,(byte)60,(byte)47,(byte)112,(byte)62,(byte)174,(byte)11,(byte)48,(byte)48,(byte)55,(byte)48,(byte)48,(byte)184,(byte)118,(byte)116,(byte)46,(byte)60,(byte)47,(byte)102,(byte)111,(byte)110,(byte)116,(byte)62,(byte)10,(byte)9,(byte)0,(byte)0,(byte)128,(byte)160,(byte)112,(byte)32,(byte)97,(byte)108,(byte)105,(byte)103,(byte)110,(byte)61,(byte)114,(byte)105,(byte)103,(byte)104,(byte)116,(byte)32,(byte)100,(byte)105,(byte)114,(byte)61,(byte)114,(byte)116,(byte)108,(byte)62,(byte)60,(byte)70,(byte)8,(byte)32,(byte)99,(byte)111,(byte)108,(byte)111,(byte)64,(byte)101,(byte)32,(byte)0,(byte)0,(byte)128,(byte)100,(byte)62,(byte)226,(byte)151,(byte)143,(byte)82,(byte)13,(byte)32,(byte)216,(byte)177,(byte)217,(byte)135,(byte)216,(byte)167,(byte)32,(byte)218,(byte)169,(byte)216,(byte)177,(byte)216,(byte)175,(byte)217,(byte)134,(byte)216,(byte)140,(byte)32,(byte)216,(byte)175,(byte)216,(byte)179,(byte)216,(byte)170,(byte)17,(byte)128,(byte)85,(byte)140,(byte)134,(byte)4,(byte)180,(byte)219,(byte)140,(byte)18,(byte)5,(byte)217,(byte)133,(byte)216,(byte)170,(byte)217,(byte)136,(byte)217,(byte)130,(byte)217,(byte)129,(byte)166,(byte)10,(byte)72,(byte)132,(byte)170,(byte)14,(byte)181,(byte)57,(byte)1,(byte)129,(byte)44,(byte)184,(byte)216,(byte)177,(byte)26,(byte)6,(byte)234,(byte)37,(byte)108,(byte)101,(byte)102,(byte)177,(byte)0,(byte)1,(byte)134,(byte)142,(byte)37,(byte)108,(byte)116,(byte)114,(byte)170,(byte)37,(byte)78,(byte)52,(byte)99,(byte)69,(byte)3,(byte)100,(byte)111,(byte)32,(byte)110,(byte)111,(byte)116,(byte)32,(byte)97,(byte)17,(byte)4,(byte)100,(byte)111,(byte)110,(byte)32,(byte)104,(byte)111,(byte)112,(byte)101,(byte)131,(byte)149,(byte)112,(byte)0,(byte)198,(byte)18,(byte)97,(byte)48,(byte)52,(byte)49,(byte)192,(byte)97,(byte)12,(byte)145,(byte)34,(byte)62,(byte)216,(byte)167,(byte)217,(byte)133,(byte)198,(byte)48,(byte)149,(byte)3,(byte)141,(byte)3,(byte)216,(byte)167,(byte)216,(byte)178,(byte)86,(byte)55,(byte)145,(byte)2,(byte)175,(byte)217,(byte)135,(byte)79,(byte)157,(byte)0,(byte)3,(byte)144,(byte)81,(byte)0,(byte)116,(byte)104,(byte)101,(byte)121,(byte)86,(byte)40,(byte)101,(byte)100,(byte)32,(byte)60,(byte)105,(byte)114,(byte)0,(byte)0,(byte)3,(byte)160,(byte)32,(byte)97,(byte)116,(byte)116,(byte)101,(byte)109,(byte)112,(byte)116,(byte)32,(byte)116,(byte)111,(byte)32,(byte)101,(byte)115,(byte)99,(byte)97,(byte)131,(byte)28,(byte)91,(byte)0,(byte)161,(byte)2,(byte)218,(byte)169,(byte)217,(byte)136,(byte)216,(byte)180,(byte)216,(byte)180,(byte)32,(byte)216,(byte)168,(byte)70,(byte)47,(byte)219,(byte)93,(byte)70,(byte)131,(byte)196,(byte)181,(byte)5,(byte)129,(byte)70,(byte)2,(byte)101,(byte)5,(byte)62,(byte)104,(byte)175,(byte)131,(byte)157,(byte)1,(byte)1,(byte)217,(byte)130,(byte)165,(byte)4,(byte)37,(byte)7,(byte)175,(byte)216,(byte)176,(byte)133,(byte)1,(byte)180,(byte)169,(byte)7,(byte)74,(byte)115,(byte)170,(byte)216,(byte)177,(byte)218,(byte)169,(byte)3,(byte)155,(byte)227,(byte)0,(byte)104,(byte)101,(byte)162,(byte)72,(byte)104,(byte)105,(byte)115,(byte)132,(byte)32,(byte)1,(byte)8,(byte)232,(byte)109,(byte)112,(byte)97,(byte)110,(byte)105,(byte)77,(byte)7,(byte)105,(byte)110,(byte)198,(byte)76,(byte)32,(byte)109,(byte)105,(byte)100,(byte)100,(byte)108,(byte)101,(byte)32,(byte)111,(byte)102,(byte)138,(byte)3,(byte)106,(byte)111,(byte)117,(byte)114,(byte)110,(byte)101,(byte)121,(byte)3,(byte)155,(byte)154,(byte)0,(byte)175,(byte)105,(byte)4,(byte)205,(byte)4,(byte)192,(byte)225,(byte)3,(byte)194,(byte)179,(byte)216,(byte)183,(byte)32,(byte)216,(byte)179,(byte)6,(byte)75,(byte)161,(byte)4,(byte)10,(byte)4,(byte)170,(byte)32,(byte)216,(byte)174,(byte)36,(byte)86,(byte)129,(byte)166,(byte)53,(byte)3,(byte)30,(byte)157,(byte)1,(byte)238,(byte)21,(byte)179,(byte)217,(byte)132,(byte)219,(byte)140,(byte)217,(byte)133,(byte)131,(byte)162,(byte)152,(byte)0,(byte)109,(byte)115,(byte)101,(byte)108,(byte)105,(byte)4,(byte)0,(byte)17,(byte)158,(byte)129,(byte)111,(byte)32,(byte)108,(byte)101,(byte)99,(byte)104,(byte)101,(byte)114,(byte)131,(byte)155,(byte)140,(byte)0,(byte)167,(byte)217,(byte)136,(byte)219,(byte)85,(byte)0,(byte)216,(byte)180,(byte)217,(byte)135,(byte)100,(byte)10,(byte)147,(byte)131,(byte)159,(byte)135,(byte)0,(byte)143,(byte)36,(byte)2,(byte)219,(byte)140,(byte)81,(byte)10,(byte)245,(byte)8,(byte)168,(byte)219,(byte)140,(byte)226,(byte)128,(byte)140,(byte)60,(byte)183,(byte)67,(byte)128,(byte)216,(byte)168,(byte)134,(byte)167,(byte)97,(byte)6,(byte)198,(byte)177,(byte)241,(byte)10,(byte)219,(byte)140,(byte)3,(byte)26,(byte)46,(byte)0,(byte)202,(byte)165,(byte)105,(byte)1,(byte)167,(byte)177,(byte)10,(byte)121,(byte)1,(byte)180,(byte)217,(byte)2,(byte)198,(byte)123,(byte)40,(byte)216,(byte)185,(byte)217,(byte)129,(byte)131,(byte)150,(byte)181,(byte)0,(byte)99,(byte)104,(byte)105,(byte)108,(byte)100,(byte)105,(byte)115,(byte)104,(byte)47,(byte)24,(byte)0,(byte)136,(byte)86,(byte)92,(byte)3,(byte)27,(byte)174,(byte)0,(byte)50,(byte)34,(byte)142,(byte)237,(byte)175,(byte)57,(byte)5,(byte)167,(byte)217,(byte)134,(byte)217,(byte)135,(byte)3,(byte)144,(byte)43,(byte)0,(byte)131,(byte)143,(byte)90,(byte)0,(byte)98,(byte)108,(byte)97,(byte)99,(byte)107,(byte)34,(byte)32,(byte)115,(byte)116,(byte)121,(byte)108,(byte)101,(byte)61,(byte)34,(byte)134,(byte)6,(byte)45,(byte)119,(byte)101,(byte)1,(byte)2,(byte)124,(byte)128,(byte)70,(byte)17,(byte)58,(byte)98,(byte)111,(byte)108,(byte)100,(byte)34,(byte)62,(byte)42,(byte)86,(byte)49,(byte)105,(byte)110,(byte)103,(byte)32,(byte)115,(byte)104,(byte)105,(byte)112,(byte)3,(byte)155,(byte)102,(byte)0,(byte)142,(byte)198,(byte)197,(byte)6,(byte)201,(byte)8,(byte)82,(byte)17,(byte)60,(byte)47,(byte)112,(byte)62};

String head2=new String(data);

但是我收到了这个字符串:

  

O /ǝban' @   dǝn/

00700vt。 palign= right dir = rtl>●Rرهاکردن,دست U یمتوقف   H 9 , ر %lef %ltr %N4cEdo not adon   hope p a041 a “>ام 0 ازV7 هO Q theyV(edh ق % ذ Js رک he Hhis mpaniMin L   中间的旅程   خ$V 5 添加了更多    ی< C ب aƱ ی. ʥi   Ý{(عف幼稚/ V \ 2 “9نه+ Zblack”   style =“ -we | F:bold”> *V1ingship f R

顺便说一句,我的字符串也包含html标签。 那有什么问题?

2 个答案:

答案 0 :(得分:0)

您的字节数组似乎正在使用UTF-8作为默认字符集(更多read here

尝试改变这样的事情:

byte[] data == // getData();
String str = new String(data, StandardCharsets.US_ASCII);

答案 1 :(得分:0)

此处类似问题:How to convert Java String into byte[]?

“[A] ll Java中的String对象在内部存储为UTF-16。当转换为byte []时,您将获得该String的给定字形的不同字节细分,具体取决于所选的字符集。”

因此您还必须指定一个字符集:String string = new String(byte[] bytes, Charset charset);

例如UTF-16或ASCII