加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Java中String与byte[]之间的转换

(2014-10-16 14:04:44)
标签:

string转byte[]

byte[]转string

java

分类: Java/Android

Java中,一般的文件读写,以及发送信息,要求的都是byte格式的数据,但是我们习惯使用的数据类型是String类型,这样必然导致了,方便使用后,事后进行转码的方法。

1.Stringbyte[]格式

String类从JDK1.1之后,自带了三个String类转换成byte[]格式的函数,其函数原型如下:

//使用平台默认的编码方式将字符串编码为byte序列

byte[] getBytes();

//使用指定的Charset编码将字符串编码为byte序列

byte[] getBytes(Charset charset);

//使用字符串指定的编码方式将字符串编码为byte序列

byte[] getBytes(String charsetName);

Java中完全支持的编码为下列几个

US-ASCII

7 ASCII 字符,也叫作 ISO646-USUnicode 字符集的基本拉丁块

ISO-8859-1

ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1

UTF-8

8 UCS 转换格式

UTF-16BE

16 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序

UTF-16LE

16 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序

UTF-16

16 UCS 转换格式,字节顺序由可选的字节顺序标记来标识

一般现在统一使用的UTF-8编码方式,在这种方式下,中文不会出现乱码。

例如:

String message = “你好,这是编码测试abc”;

//将其转换成”UTF-8”编码的byte格式

byte convert[] = message.getBytes( “UTF-8” );

 

2.byte[]转换成String

只需用byte新建一个String类即可,String类提供了多种构造函数,用于从byte[]新建String,下面只提及三种,依次对应上面三种,其他的请自行查询API

//使用平台默认编码方式解码byte数组以构造String

String(byte[] bytes);

//使用指定的charset方式解码byte数组以构造String

String(byte[] bytes, Charset charset);

//使用String指定的方式解码byte数组以构造String

String(byte[] bytes, String charsetName);

比如要将上面的byte数组还原可以如下操作:

String convertAgain = new String( convert, “UTF-8” );

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有