菜鸟问乱码的问题
真正的菜鸟,下面的小段程序在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不是按照字节来的,而是按照字来的,单字节的长度算一,双字节,三字节的也算一