JAVA字符用的Unicode编码,为何转换成byte[]却又变成国标码GB2312?
mport java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class webTest extends Applet
{
public void paint(Graphics g)
{
int k=10;
g.setColor(Color.red);
String s="啊";
byte b[]=s.getBytes();
int i1=(int)b[0];
if (i1<0)
i1+=256;
int i2=(int)b[1];
if (i2<0)
i2+=256;
g.drawString(""+i1+":"+i2,20,20);
}
public static void main(String args[])
{
Frame frame0=new Frame("Frame1");
frame0.setSize(800,600);
frame0.setVisible(true);
Graphics g=frame0.getGraphics();
webTest web1=new webTest();
web1.paint(g);
}
}
字符串 “啊”转换成字节数组byte[],
结果是176:161
啊在国标中是第一个汉字,内码是176,161(16区第1位),
java怎么一会UNICODE,一会儿又是国标GB,怎这么随便呢
------解决方案--------------------
我在Ubuntu下面跑的结果是229:149(默认UTF-8嘿嘿),用getBytes(“GB2312”)的结果是176:161
------解决方案--------------------
------解决方案--------------------