varchar(5)表示的是字符长度5,不是字节数
𤭢是一个字符占用了四个字节,我们存到数据库中也是最多能存5个𤭢
String length()方法返回的是代码单元数量
上图是String类中length源码,注意红框部分是代码单元的数量,那我们知道String的value其实是一个char[],那我们就可以推出char = 代码单元
@Testpublic void stringLengthTest() {//𤭢 \uD852\uDF62String str = "𤭢𤭢𤭢𤭢𤭢";// 输出10System.out.println(str.length());// 输出5System.out.println(str.codePointCount(0, str.length()));}
这个例子就能看出因为1𤭢 = 2char,所以length返回的是10。
String类中还有一个codePointAt()这个返回的是代码点数量,也就是我们看到的字符数量