バイナリデータがある場合Dそして文字列Sに変換する場合はバイナリに変換するよりもDが得られます。しかし間違っています。バイナリデータを文字列に変換する
public class A {
public static void main(String[] args) throws IOException {
final byte[] bytes = new byte[]{-114, 104, -35};// In hex: 8E 68 DD
System.out.println(bytes.length); //prints 3
System.out.println(new String(bytes, "UTF-8").getBytes("UTF-8").length); //prints 7
}
}
どうしてですか?
文字列に任意のバイナリデータを強制しようとしていますか?どうして? – Jesper
(何らかの理由で文字列のバイナリを隠す必要がある場合、バイトと文字の間に1対1のマッピングを提供するエンコーディングを使用する必要があります; ISO-8859-1は明らかな選択肢ですUTF-8には有効な文字ではないバイトシーケンスがあります。 – bobince