public String toBinary(String str) {
char[] strChar = str.toCharArray();
String result="";
for (int i = 0; i < strChar.length; i++) {
result += Integer.toBinaryString(strChar[i]);
}
return result;
}
用这个方法倒是可以出来中文的二进制字符,但是,感觉不太正确,和教材上面的不一样,例如,金(1011110111110000),我用上面的转换出来的是:1001000111010001 ,忘高手解答,谢谢!

解决方案 »

  1.   


    public static void main(String[] args){
    String str = "金";
    byte[] b = str.getBytes();
    for(int i=0;i<b.length;i++){
    System.out.println(Integer.toBinaryString(b[i]&0xff));
    }

    }
    这样转。
      

  2.   


    public String toBinary(String str) {
    String result = "";
    byte[] b = str.getBytes();
    for (int i = 0; i < b.length; i++) {
    result += Integer.toBinaryString(b[i] & 0xff);
    }
    return result;
    }
    转换方法应该是这样的,结果为“金” = 111010011000011110010001   和你说的那个“金(1011110111110000)”也不一样!!
    不知道是什么原因!
      

  3.   

      那个对英文的话是不会错的,不知道中文会不会有问题了,感觉中文那样好像不太对似的。 可不可以先把中文转成ASCII码,在转ASCII码呢?
      这样好像有点麻烦哦,呵呵 非常笨的方法...