关于ASCII的部分可能不太准确吧
来源:3-11 字符型字面值
Bass小骏
2020-06-25 23:56:49
我开始听到char要使用ASCII码, 可以用数字来代替, 但一个char最多支持65535, 也就是2byte, 而ASCII码只要7bit、8bit,
下一节是讲Unicode编码, 更迷茫了, 我记得Unicode可以表示的范围不止2byte, 比如UTF-32
然后我查了一下官方文档:
“Literals of types char and String may contain any Unicode (UTF-16) characters. If your editor and file system allow it, you can use such characters directly in your code. If not, you can use a "Unicode escape" such as '\u0108'”
所以char准确的说, 应该标准支持Unicode的UTF-16字符集, 可以使用 \u0108的形式来告诉java这是一个UTF-16的字符集
但为什么还要加个\u呢, 我想到课程中用数字来表示一个char, 而同样的数字, 比如:
char a = 65 //A
char b = '\u0065' //e
这应该是一种默认设置, 如果char的输入是整形, 则认为是ASCII形式
1回答
同学你好
1,如果表示的数字超过了ASCII码的表示范围,会依据Unicode编码进行转化
2,一般情况下,Unicode编码中,所有字符都使用\u加上4位16进制表示 , 用来表示是Unicode编码
3,可以认为在char输入整形就是ASCII形式,加上\u和4位16进制的是Unicode形式
如果我解决了你的疑惑,请采纳!祝学习愉快~
相似问题