关于编码问题。进来留言都有分 System.out.println(Integer.toHexString('回')); //char用的是unicode编码, 不是0xBBD8 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class Input{ public static void main(String args[])throws Exception{ byte[] k={-69,-40};; String str1=new String(k,"gb2312"); System.out.println(str1); }}我测试过,输出就是"回"字 应该是char c = (char) (k+(l<<8));的问题,好像转化的不是ASCII码,因为直接打印可以打印出“回”,所以不应该是识别不出来~~ System.out.println((char)22238);打出来的才是回!回的unicode码是22238!java里面用的是unicode,BBD8显示是不是unicode,而是GBK或GB2312之类的编码! public class Input{ public static void main(String args[])throws Exception{ byte[] k={-69,-40};; String str1=new String(k,"gb2312"); System.out.println(str1); }}你试试,我测试过,输出就是回字 byte[] k={-69,-40};多了一个";"to mqqqvpppm(机纽特种部队)我真的测试过,我系统的我将系统的默认编码改为了gb2312,输出的明明是"回"字. public class Input{ public static void main(String args[])throws Exception{ byte[] k={-69,-40};; String str1=new String(k,"gb2312"); System.out.println(str1); }}你试试,我测试过,输出就是回字???我的怎么不行啊? 我不仅测试过回字,一下还有:k={-59,-80} 输出"虐"k={-29,-80} 输出"惆"k={-29,-50} 输出'阄"等等. public class hanzi { public static void main(String [] args) { byte[] b={-69,-40}; String s =new String(b); System.out.println(s); }} 英文字符一般是以一个字节来表示的,最常用的编码方法是 ASCII 。但一个字节最多只能区分256个字符,而汉字成千上万,所以现在都以双字节来表示汉字,为了能够与英文字符分开,每个字节的最高位一定为1,这样双字节最多可以表示64K格字符。字符第一位为1,意味着这个字符一个负值。这样楼主该明白了吧。 一个汉字是由2个字节组成,而且组成汉字的每个字节的ASCII码的第一位都是“1”即转换成数字的话都是负数!你可以采用我的方法!进行强制转换!将byte型转换成String就行了! 一般不需要写算法去解释。如果涉及这方面的程序,就要先去了解怎样编码的,例如gb2312,编码的方法。这个不是移位能解决的。1011101111011000应该是"回"字的unicode编码。用gb2312就能解出是“回”,如果你机器的语言版本不是中文的,可能就会出乱码。 java用的是unicode编码方式,不是ASCII码 char是unicode编码,一个字符对应一个32位整数,所以你的程序是不对的char hui[] = { "\ubbd8" }; 请教:UDP一个常识性问题 java的cs项目scoket编程在外网出现了点问题,请高手指点 关于复选框的取值问题 谁能帮我看一下这段代码?有什么错? XML编码问题(怎样生成GB2312) 求Windows下JAVA开发环境,类似VC的那种IDE。 如何实现这个简单的布局效果?哪些开发工具能自动布局啊? JPopupMenu的弹出选项如何去掉选择状态 关于java编码的讨论,请高手发言(需要对系统有所了解)! scjp问题.帮忙 java编译器的编译方式? 关于JSP的小程序,请高手帮忙!
public class Input{
public static void main(String args[])throws Exception{
byte[] k={-69,-40};;
String str1=new String(k,"gb2312");
System.out.println(str1);
}
}
我测试过,输出就是"回"字
打出来的才是回!
回的unicode码是22238!
java里面用的是unicode,
BBD8显示是不是unicode,而是GBK或GB2312之类的编码!
public class Input{
public static void main(String args[])throws Exception{
byte[] k={-69,-40};;
String str1=new String(k,"gb2312");
System.out.println(str1);
}
}
你试试,我测试过,输出就是回字
to mqqqvpppm(机纽特种部队)
我真的测试过,我系统的我将系统的默认编码改为了gb2312,输出的明明是"回"字.
public static void main(String args[])throws Exception{
byte[] k={-69,-40};;
String str1=new String(k,"gb2312");
System.out.println(str1);
}
}
你试试,我测试过,输出就是回字???
我的怎么不行啊?
k={-59,-80} 输出"虐"
k={-29,-80} 输出"惆"
k={-29,-50} 输出'阄"
等等.
{
public static void main(String [] args)
{
byte[] b={-69,-40};
String s =new String(b);
System.out.println(s); }
}
字符第一位为1,意味着这个字符一个负值。
这样楼主该明白了吧。
即转换成数字的话都是负数!
你可以采用我的方法!进行强制转换!
将byte型转换成String就行了!
如果涉及这方面的程序,就要先去了解怎样编码的,例如gb2312,编码的方法。这个不是移位能解决的。
1011101111011000应该是"回"字的unicode编码。用gb2312就能解出是“回”,如果你机器的语言版本不是中文的,可能就会出乱码。
char hui[] = { "\ubbd8" };