关于字符串长度的问题 本帖最后由 liukai_2012 于 2012-06-24 15:58:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主概念还是不清楚,先弄清楚字符长度和字节长度,问题就很清楚了。运行下对比一下:System.out.println("计算机科学与技术".length());System.out.println("计算机科学与技术".getBytes().length); 补充一下,我的默认字符编码是UTF-8,所以第二个是打印24。在Java中,String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,举个列子如:byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getBytes("UTF-8");byte[] b_iso88591 = "中".getBytes("ISO8859-1");将分别返回“中”这个汉字在GBK、UTF-8和ISO8859-1编码下的byte数组表示,此时b_gbk的长度为2,b_utf8的长度为3,b_iso88591的长度为1。 有点懂了 那我稍微自己总结下 你看对不对同样的一串汉字在GBK、UTF-8和ISO8859-1编码下的字节长度不同 但字符长度是一样的我之前出现的问题 int p = profession.length(); out.println("专业的字符串长度为:" + p);输出24 应该是因为乱码的原因 我没有设置成GB2312 理论上应该是输出8的还有nchar(10) 所代表的也是字符长度 而一个汉字就是一个字符 所以说最多可以容纳10个字符 Sping @RequestParam 如何传递一个对象,在线等候,在这里先谢谢大侠了 java如何获取代理前的访问url struts 问题 JSP连MYSQL问题 Struts+MySQL数据插入后,在MySQL里看是???的乱码,读出来也???,求终结解决方案 在线等?? 搞了好长时间,谁来终结一下 救命,救命啊,字符串为什么执行不了???请好心人帮帮小弟!!! 关于查询结果的问题 特殊符号的转换问题 如何将html做的界面原型整合到jsp中利用SH框架最终实现一个系统功能啊 关于prepareStatement带日期参数的问题
运行下对比一下:System.out.println("计算机科学与技术".length());
System.out.println("计算机科学与技术".getBytes().length);
补充一下,我的默认字符编码是UTF-8,所以第二个是打印24。
在Java中,String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,举个列子如:
byte[] b_gbk = "中".getBytes("GBK");
byte[] b_utf8 = "中".getBytes("UTF-8");
byte[] b_iso88591 = "中".getBytes("ISO8859-1");将分别返回“中”这个汉字在GBK、UTF-8和ISO8859-1编码下的byte数组表示,此时b_gbk的长度为2,b_utf8的长度为3,b_iso88591的长度为1。
同样的一串汉字在GBK、UTF-8和ISO8859-1编码下的字节长度不同 但字符长度是一样的
我之前出现的问题
int p = profession.length();
out.println("专业的字符串长度为:" + p);
输出24 应该是因为乱码的原因 我没有设置成GB2312 理论上应该是输出8的
还有nchar(10) 所代表的也是字符长度 而一个汉字就是一个字符 所以说最多可以容纳10个字符