真正的菜鸟,下面的小段程序在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
}
}
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
}
}
你输入:中文Java\u516c\u53f8\u9996\u9875试试java中String的length不是按照字节来的,而是按照字来的,单字节的长度算一,双字节,三字节的也算一