ASCII码和Unicode字符

0 阅读2分钟

Unicode

  • 由于计算机在美国发明,大家更多考虑的是英语如何在计算机中表示。从而得到ASCII码表,表示英语字母总共26个,加上特殊字符,128个字符。后来其他国家也陆续有了自己的编码表,标准不统一,于是就会产生一些问题,于是Unicode诞生了,它可以表达非常多的字符,包括数字、符号、英文、汉字、德文、日文等等,总共可以表示65536个字符。
  • 同时,Java支持Unicode和各种编码规则,所以不同编码规范之间可以通过一些算法进行转换,甚至一些编码都是通用的。比如说,在Unicode码中,ASCII码的字符被分配到0x00-0x7F的范围内,所以我们也可以认为,ASCII码是Unicode码的一个子集。

字符型

  • 字符强制转换成整型会转换为在表中所对应的序号(Unicode编码值),给char类型的变量赋值数字也会转换为该数字匹配的字符
char c = 'A'; System.out.println((int) c);//输出65 
char a = 65;
System.out.println(a);//输出A
  • 比较的是Unicode编码值的大小A
System.out.println('A' > 'a');//比较的是Unicode编码值的大小
  • 通过一些特性,做大小写转换
//通过一些特性,做大小写转换 
char a = 'a'; 
char a1 = (char) (a + 'A' - 'a'); 
System.out.println(a1);//A
char c = '\u0041';//A

4b496b51501106c1662d4304a7b9324fb2bf5daf.jpg@1256w_848h_!web-article-pic.webp