这段代码应该将字符串转换为二进制字符串,但是有几个字符串,它返回一个String16位二进制数字,而不是我预期的那样的8位数字.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
在前两个字符串中,我不明白为什么它们返回2个字节,因为它们是单字符字符串.
编译在这里:https://ideone.com/AbxBZ9
返回:
11000010 10101010
11000011 10011000
00101000
number of bytes :2
number of bytes :2
number of bytes :1
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码:转换字符串(如testing123)到二进制在Java中
NetBeans IDE 8.1