This code is supposed to convert a character strings to binary ones, but with a few strings, it returns a String with 16 binary digits, not 8 as I expected them to be.
public class aaa { public static void main(String argv[]){ String nux="ª"; String nux2="Ø"; String nux3="("; byte []bites = nux.getBytes(); byte []bites2 = nux2.getBytes(); byte []bites3 = nux3.getBytes(); System.out.println(AsciiToBinary(nux)); System.out.println(AsciiToBinary(nux2)); System.out.println(AsciiToBinary(nux3)); System.out.println("number of bytes :"+bites.length); System.out.println("number of bytes :"+bites2.length); System.out.println("number of bytes :"+bites3.length); } public static String AsciiToBinary(String asciiString){ byte[] bytes = asciiString.getBytes(); StringBuilder binary = new StringBuilder(); for (byte b : bytes) { int val = b; for (int i = 0; i < 8; i++) { binary.append((val & 128) == 0 ? 0 : 1); val <<= 1; } binary.append(' '); } return binary.toString(); } } in the first two strings, I don't understand why they return 2 bytes, since they are single-character strings.
Compiled here to: https://ideone.com/AbxBZ9
This returns:
11000010 10101010 11000011 10011000 00101000 number of bytes :2 number of bytes :2 number of bytes :1 I am using this code: Convert A String (like testing123) To Binary In Java
NetBeans IDE 8.1
getBytescan take an argument for the character set you want to use.