日期:2014-05-20  浏览次数:20866 次

菜鸟问乱码的问题
真正的菜鸟,下面的小段程序在cmd下JDK1.5编译后执行,Unicode字符\u2122输出为乱码,计算长度也不像想象的一样,为什么?怎么改?请高手给一段不会乱码的程序,我是真正的菜鸟,估计提示一下都没有用,谢谢!


import   java.util.*;

public   class   UnicodeCode   {
public   static   void   main(String   args[])   {
String   str= "中文Java\u2122 "; //\u2122输出为?

System.out.println(str);
System.out.println( "length= "+str.length()); //结果length=7,似应为8,\u2122应该是2个代码单元吧?
System.out.println( "count= "+str.codePointCount(0,str.length())); //结果codePoint=7
}
}

------解决方案--------------------
\u2122不知道是什么,估计本来就是乱码
你输入:中文Java\u516c\u53f8\u9996\u9875试试

java中String的length不是按照字节来的,而是按照字来的,单字节的长度算一,双字节,三字节的也算一