java工作知识点-unicode

unicode、utf8编码

我是小小强,这是我的第14篇原创文章,阅读需要大约5分钟。


参考

对于unicode,utf8知识点的介绍,可以参考以下两篇文章。

个人理解

  • unicode只是表示了每个字符对应的编码映射(字符集),称为codepoint,至于字符究竟在内存中如何表示和存储,由具体的编码规则(如utf8,gbk)实现。比如一个人的姓名“张三”,这个就是名字的字符映射。如果要和美国人交流,就需要写成“ZhangSan”,和其它国家人交流,也是如此。这就是具体的存储和表示方式。
  • 早期的unicode是两字节表示,因此现在很多书上可以看到“unicode字符是2个字节”这种表述,现在来说是不准确的。在发展后期,Unicode一共有17个平面,开头是0x00—–0x10;每个平面(0x0000-0xFFFF)都可以表示65535个字符。因此现在可以表示0x00 0000-0x10 FFFF这些字符。
  • 此外,unicode字符在存储时,也是区分字节序的。如一个字符的编码映射为u+AABB,在大端情况下,内存低字节为AA高字节BB。UTF-8使用最多4字节编码一个字符,常见字符3字节。
  • 另外,char变量字符是可以赋值给int型变量的,反之不可以。
坚持原创技术分享,您的支持将鼓励我继续创作!