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,怎这么随便呢
4 个解决方案
#1
我搜过了,getBytes()中没有编码参数时,用的是操作系统的缺省编码,而WINDWOS是GBK,
所以,变成GBK;
所以,变成GBK;
#2
我在Ubuntu下面跑的结果是229:149(默认UTF-8嘿嘿),用getBytes(“GB2312”)的结果是176:161
#3
这种问题应该先查文档,再谷歌,再发帖子问
#4
+1
* Encodes this {@code String} into a sequence of bytes using the
* platform's default charset, storing the result into a new byte array.
#1
我搜过了,getBytes()中没有编码参数时,用的是操作系统的缺省编码,而WINDWOS是GBK,
所以,变成GBK;
所以,变成GBK;
#2
我在Ubuntu下面跑的结果是229:149(默认UTF-8嘿嘿),用getBytes(“GB2312”)的结果是176:161
#3
这种问题应该先查文档,再谷歌,再发帖子问
#4
+1
* Encodes this {@code String} into a sequence of bytes using the
* platform's default charset, storing the result into a new byte array.