zoukankan      html  css  js  c++  java
  • unicode、utf8、字符串字面值

    发现好多新人都不明白,或者说没有直观的感受,其实很简单。

    简单的说,unicode是一种将全球文字都涵盖的字典 - 可以认为每个字符都有一个数字索引。

    比如可以这样(假设):'a' 的索引是13,'我' 的索引是11245,'の' 的索引是 50789等等。

    这样,任何人只要拿着数字就可以找到对应的字符。

    那么,UTF8又是怎么回事?

    还是要从unicode说起,我们可以认为unicode只是字符与数字的对应关系,至于怎么保存这个数字(保存了数字,也就等于保存了字符),那就是unicode用户的事了。

    (多说一句,这里的unicode用户不是你我他这种,而是程序)

    各路大神纷纷实现了自己的存储方式,或者考虑编解码效率,或者考虑存储效率。

    但各自为战总是不方便沟通交流,于是某个组织推出了一种编码UTF,号召大家都用这个。

    只不过这个编码工作显然也需要一代一代的迭代进化,所以有了今天的UTF8编码。兼顾存储效率和读写效率。

    字符串字面值,说白了就是一串unicode序列。

    如果你搞Java,那在java.lang.String里有code point的概念,这个code point应该指的就是unicode - 明天确认一下。

    如果你搞golang,应该知道golang中所有字符串都是UTF8编码,还有一个rune类型,不妨想想是怎么回事。

    ps:

      至于为什么出现unicode,这就跟春秋战国时期各个国家都有自己的文字一样,沟通很不方便,而且可能一样的字形截然不同的含义。

      于是有了unicode,保证了大家书同文车同轨,剩下的爱怎么使用这种文字都是你的事了。

  • 相关阅读:
    批量备份mysql数据库(shell编程)
    批量检查多个网址是否正常(shell编程)
    就linux三剑客简单归纳
    sql语句浅谈以及mysql遇到的问题解决见解
    linux shell每天一阅 -- 安装nginx以及apache
    Linux文件系统检查错误
    Linux账号管理和ACL
    简书博客
    Block内的强引用
    一次没有意义的优化
  • 原文地址:https://www.cnblogs.com/larryzeal/p/9411005.html
Copyright © 2011-2022 走看看