关于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回答

好帮手慕阿园

2020-06-27

同学你好
1,如果表示的数字超过了ASCII码的表示范围,会依据Unicode编码进行转化
2,一般情况下,Unicode编码中,所有字符都使用\u加上4位16进制表示 , 用来表示是Unicode编码
3,可以认为在char输入整形就是ASCII形式,加上\u和4位16进制的是Unicode形式

如果我解决了你的疑惑,请采纳!祝学习愉快~


0

0 学习 · 16556 问题

查看课程