・Stringからbyte[]に変換
変換できない文字があった場合、例外通知するようにCodingErrorAction.REPORTを設定した例。
Stirng src = "aaaa";
CharsetEncoder encoder = Charset.forName("UTF-8").newEncoder()
.onMalformedInput(CodingErrorAction.REPORT)
.onUnmappableCharacter(CodingErrorAction.REPORT);
CharBuffer cb = CharBuffer.wrap(src);
buf = encoder.encode(cb);
byte[] array = buf.array()
または、使い方によっては、こちら。
Stirng src = "aaaa";
CharsetEncoder encoder = Charset.forName("UTF-8").newEncoder()
.onMalformedInput(CodingErrorAction.REPORT)
.onUnmappableCharacter(CodingErrorAction.REPORT);
CharBuffer cb = CharBuffer.wrap(src);
ByteBuffer mbuf = ByteBuffer.allocate(1000);
encoder.reset().encode(cb, mbuf, true); //戻り値チェックしたほうがいいかも
byte[] array = buf.array()
・byte[]からString
こっちの場合も、変換できない文字があった場合、例外通知するようにCodingErrorAction.REPORTを設定した例。
byte[] a = {1, ,2, 3}
CharsetDecoder decoder = Charset.forName("US-ASCII").newDecoder()
.onMalformedInput(CodingErrorAction.REPORT)
.onUnmappableCharacter(CodingErrorAction.REPORT);
CharBuffer buf = decoder.decode(ByteBuffer.wrap(a));
String s = buf.toString();
または、使い方によっては、こちら。
CharsetDecoder decoder = Charset.forName("US-ASCII").newDecoder()
.onMalformedInput(CodingErrorAction.REPORT)
.onUnmappableCharacter(CodingErrorAction.REPORT);
CharBuffer cb = CharBuffer.allocate(1000);
decoder.reset().decode(ByteBuffer.wrap(a), cb, true); //戻り値チェックしたほうがいいかも
String s = cb.flip().toString();