java string byte之间的转换
来源:互联网 发布:mac 搜狗输入法 流氓 编辑:程序博客网 时间:2024/04/20 22:58
byte b[] = s.getBytes();//String转换为byte[]
String t = new String(b);//bytep[]转换为String
1.string 转 byte[]
byte[] midbytes=isoString.getBytes("UTF8");
//为UTF8编码
byte[] isoret = srt2.getBytes("ISO-8859-1");
//为ISO-8859-1编码
其中ISO-8859-1为单字节的编码
2.byte[]转string
String isoString = new String(bytes,"ISO-8859-1");
String srt2=new String(midbytes,"UTF-8");
说明:
在网络传输或其它应用中常常有同一的中间件,假设为String类型。因此需要把其它类型的数据转换为中间件的类型。
将字符串进行网络传输时,如socket,需要将其在转换为byte[]类型。这中间如果采用用不同的编码可能会出现未成预料的问题,如乱码。
下面举个例子:
我们用socket传输String类型的数据时,常常用UTF-8进行编码,这样比较可以避免一个“中文乱码”的问题。
发送端:
String sendString="发送数据";
byte[] sendBytes= sendString .getBytes("UTF8");
.......socket发送
接受端:
String recString=new String( sendBytes ,"UTF-8");
但是,这里往往又会出现这样一个问题。就是想要发送的数据本身就是byte[]类型的。
如果将其通过UTF-8编码转换为中间件String类型就会出现问题
如:
byte[] bytes = new byte[] { 50, 0, -1, 28, -24 };
String sendString=new String( bytes ,"UTF-8");
byte[] sendBytes= sendString .getBytes("UTF8");
然后再发送
接受时进行逆向转换
String recString=new String( sendBytes ,"UTF-8");
byte[] Mybytes=isoString.getBytes("UTF8");
这时Mybytes中的数据将是[50, 0, -17, -65, -67, 28, -17, -65, -67]
因此,需要采用单字节的编码方式进行转换
String sendString=new String( bytes ,"UTF-8"); 改为 String sendString=new String( bytes , "ISO-8859-1" );
byte[] Mybytes=isoString.getBytes("UTF8"); 改为 byte[] Mybytes=isoString.getBytes( "ISO-8859-1" );
这样所需要的字节就有恢复了。
- [JAVA] string 和 byte之间的转换
- java string byte之间的转换
- Java String 和 byte[] 之间的相互转换
- java中byte,String,InputStream之间的转换
- java中byte,String,InputStream之间的转换
- java中byte,String,InputStream之间的转换
- java中byte,String,InputStream之间的转换
- java中byte,String,InputStream之间的转换
- java中byte []、String、inputstream之间的转换
- java中byte,String,InputStream之间的转换 .
- java中byte,String,InputStream之间的转换
- java中byte,String,InputStream之间的转换
- Java byte[]数组和十六进制String之间的转换Util
- Java中String与Byte之间的各种转换
- string与byte[]之间的转换
- String 与Byte[]数组之间的转换
- byte[]和String类型之间的转换
- String和byte[]之间的相互转换
- 完整详解GCD系列(一)dispatch_after;dispatch_apply;dispatch_
- 重要的博客资源链接
- 可变数组
- ios 在复杂的cell里面定时器会很慢
- 第十二周项目1-实现复数类中的运算符重载(1.3实现复数与实数相加减乘除)
- java string byte之间的转换
- 选择法
- 随机产生一百个数并排序
- my information
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现(第三版)
- 高级排序
- spring boot 下 500 404 错误页面处理
- 完整详解GCD系列(四)dispatch_semaphore(信号量)
- 顺序队列C/C++实现