用 native2ascii 把你的.java文件变成相应的unicode文件,然后再编译运行
解决方案 »
- js调用ajax, 返回的状态号XMLHttpReq.status = 400 代表什么
- js 向session取值的问题!!!神奇的错误!!
- 偶刚刚接触java网络编程,将applet小程序嵌入到html中的时候,出现找不到class文件。。求解。。
- tomcat下多项目交互
- 进来抢分啊?一个很简单的问题,马上结贴
- eWebEditor本地能正常运行,但上传到虚拟机不能使用
- 关于ActiveX控件的使用
- jsp生成静态html文件, 有什么优点???
- 不采用applet,如何在web页面上动态生成图表?
- jsp博客系统相册功能模块
- 要求重新login的问题
- 百思不得其解,请各位高人看看这是个什么问题
public static void main(String[] args) {
char a = 'A';
int b = a;
int c = 'A';
System.out.println(b);
System.out.println(c);
}
}
全是半角
}
if(string.getBytes().length==string.length*2){
全是全角
}
if(string.getBytes().length!=string.length && string.getBytes().length!=string.length*2){
全角半角混合
}
int a = 'A';
而'A'的unicode为 0x21ff 转成intel int 格式为0xff21 即:65313
如果要得到 'A'的GBK内码,可以这样:
String t="A";
byte[] bs=t.getBytes();
这时:bs[0]=-93,bs[1]=-63 即0xA3, 0xC1
而'A'的GBK内码就是0xA3C1
bolg.csdn.net/onlyfor_love
呵呵blog.csdn.net/onlyfor_love
String test = "A";//这里A是全角字符byte[] bs = test.getBytes();int x = bs.length;得到的x竟然是1,请问是为什么
我用linux 9+JDK1.5 结果为2
不过我记得回过一贴,在linux下jdk1.4对unicode支持有些问题,
如果你是jdk1.4,升到jdk1.5试试
(我在solaris下也试过,结果也是2)
byte[] bs = test.getBytes();
int y = test.length();
int x = bs.length;
System.out.println(y);
System.out.println(x);这个测试程序 我在window 2000得到的结果是y=2 x= 2
我上面也说过一个全角字符占2个字节,所以y的值是2就不用怀疑的!
关键是x的值,因为这个值是由getBytes()得到的,仔细看看jdk的帮助文档,你会发现这个值是不唯一确定的,它和操作系统的默认编码有关系。public byte[] getBytes()
Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.