汉字问题 java中的中文长度是1,这和C中的中文长度不一样,能否在保证字符串内容不变的情况下,使中文长度和C语言一致呢,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在JAVA中char和byte是两个不同的概念。而在C中,如果你使用宽字符集,中英文字符的长度也是一样的。 在Java的String上调用getBytes,返回的byte数组,其性质倒是很像楼主想要的东西。:) 比如:String s = "我常来CSDN";System.out.println(s.length()); //会打印出7byte[] bytes = s.getBytes();System.out.println(bytes.length); //会打印出10 s.getBytes();请谨慎使用。这个会使用系统的默认编码来转换。应该明确指定编码。public class TestInner { public static void main(String[] args) throws Exception { System.out.println("A".getBytes("ASCII").length); System.out.println("汉".getBytes("ASCII").length); System.out.println("A".getBytes("GBK").length); System.out.println("汉".getBytes("GBK").length); }} ncowboy大侠说的是对的。我刚写下那几会代码时,其实也写了个“GBK”的,后来想到并非每种平台都支持GBK的,干粹就去掉了,让系统自己看着办去吧,呵呵。 不是两位三位的问题,如果系统中不支持GBK,getBytes会出错的。 出错了可以理解呀可是System.out.println("汉".getBytes("ASCII").length);是一位,而System.out.println("汉".getBytes("GB2312").length);是两位就有点不理解了 MS932:1ASCII:1GB2312:2 //***Unicode:4utf-8:3 //***iso-8859-1:1utf-16:4 //***utf-16be:2 //***utf-16le:2唉看来还得查查编码的问题呀 找来找去还是回来了CSDN :)有兴趣大家也看看http://blog.csdn.net/NetMicrobe/archive/2006/10/10/1329393.aspx 字符串过滤问题 哪位大牛给解决一下啊 求分答案 关于Jar包访问限制问题 panel 内放置子panel 并显示图片的问题 有人用apache的oro库么? 怎样暂停游戏啊 急急。。。。。。???? TextField 和 JTextField有什么区别吗 发布一个 开源工具类--upDar,对javaBean进行操作 求一个个人博客项目 java输出pdf问题,100分求 java application调用数据库问题
而在C中,如果你使用宽字符集,中英文字符的长度也是一样的。
System.out.println(s.length()); //会打印出7
byte[] bytes = s.getBytes();
System.out.println(bytes.length); //会打印出10
public static void main(String[] args) throws Exception {
System.out.println("A".getBytes("ASCII").length);
System.out.println("汉".getBytes("ASCII").length);
System.out.println("A".getBytes("GBK").length);
System.out.println("汉".getBytes("GBK").length);
}
}
System.out.println("汉".getBytes("ASCII").length);是一位,而
System.out.println("汉".getBytes("GB2312").length);是两位就有点不理解了
ASCII:1
GB2312:2 //***
Unicode:4
utf-8:3 //***
iso-8859-1:1
utf-16:4 //***
utf-16be:2 //***
utf-16le:2唉
看来还得查查编码的问题呀
有兴趣大家也看看
http://blog.csdn.net/NetMicrobe/archive/2006/10/10/1329393.aspx