# Java - `String getBytes()`方法

> 原文： [https://beginnersbook.com/2013/12/java-string-getbytes-method-example/](https://beginnersbook.com/2013/12/java-string-getbytes-method-example/)

`getBytes()`方法将给定的`String`编码为字节序列并返回字节数组。该方法可以以下两种方式使用：

`public byte[] getBytes(String charsetName)`：使用指定的字符集将`String`编码为字节序列，并返回这些字节的数组。抛出[`UnsupportedEncodingException`](https://docs.oracle.com/javase/7/docs/api/java/io/UnsupportedEncodingException.html) - 如果不支持指定的字符集。
`public byte[] getBytes()`：它使用默认的`charset`对`String`进行编码。

### 示例：`getBytes()`方法

```java
import java.io.*;
public class GetBytesExample{
   public static void main(String args[]){
       String str = new String("Hello");
       byte[] array1 = str.getBytes();
       System.out.print("Default Charset encoding:");
       for(byte b: array1){
           System.out.print(b);
       }
       System.out.print("\nUTF-16 Charset encoding:");
       try{
             byte [] array2 = str.getBytes("UTF-16");
             for(byte b1: array2){
                System.out.print(b1);
             }
             byte [] array3 = str.getBytes("UTF-16BE");
             System.out.print("\nUTF-16BE Charset encoding:");
             for(byte b2: array3){
                System.out.print(b2);
             }
        }catch(UnsupportedEncodingException ex){
             System.out.println("Unsupported character set"+ex);
        }
   }	
}
```

输出：

```java
Default Charset encoding:72101108108111
UTF-16 Charset encoding:-2-10720101010801080111
UTF-16BE Charset encoding:0720101010801080111
```

在上面的例子中，我们使用字符集`UTF -16`和`UTF - 16BE`进行了编码，还有许多其他标准字符集，如：

*   `US-ASCII`：七位 ASCII，又称 ISO646-US，又称 Unicode 字符集的 Basic Latin 块
*   `ISO-8859-1`：ISO 拉丁字母第 1 号，又称 ISO-LATIN-1
*   `UTF-8`：8 位 UCS 转换格式
*   `UTF-16BE`：16 位 UCS 转换格式，大端字节顺序
*   `UTF-16LE`：16 位 UCS 转换格式，小端字节顺序
*   `UTF-16`：16 位 UCS 转换格式，字节顺序由可选字节顺序标记标识。

#### 参考：

[`Charset`](https://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html)