1. ホーム
  2. java

[解決済み] Java の文字列を ASCII バイト配列に変換するには?

2023-05-22 06:22:51

質問

Java StringをASCIIバイト配列に変換する方法は?

どのように解決するのですか?

を使用して getBytes メソッドを使用して、適切な Charset (または Charset の名前)。

String s = "Hello, there.";
byte[] b = s.getBytes(StandardCharsets.US_ASCII);


より多くの制御が必要な場合 (例えば、7 ビットの US-ASCII 以外の文字に遭遇したときに例外を投げるなど)、次のようにします。 CharsetDecoder を使用することができます。

private static byte[] strictStringToBytes(String s, Charset charset) throws CharacterCodingException {
    ByteBuffer x  = charset.newEncoder().onMalformedInput(CodingErrorAction.REPORT).encode(CharBuffer.wrap(s));
    byte[] b = new byte[x.remaining()];
    x.get(b);
    return b;
 }


Java 7以前は使用可能です。 byte[] b = s.getBytes("US-ASCII"); . 列挙された StandardCharsets は、エンコーダだけでなく、特殊な getBytes(Charset) メソッドがJava 7で導入されました。