zoukankan      html  css  js  c++  java
  • 编码

    • 编码的种类
      • ASCII:占1个字节,只支持英文
      • GB2312:占2个字节,支持6700+汉字
      • GBK:GB2312的升级版,支持2100+汉字
      • Shift+JIS:日本字符
      • ks_c_5601-1987:韩国编码
      • TIS-620:泰国编码
      • unicode:2-4个字节,万国码,涵盖了全球所有文字和二进制的对应关系
        • 直接支持全球所有语言,每个国家都可以不用再使用自己之前的旧编码,用unicode就可以了。(跟英语是全球通用语言一样)
        • 不同国家的字符都可在unicode中找到映射关系,相互转换
        • 至少使用2个字节,对英文字符这类的,比ASCII多用一倍的内存,浪费空间,因此有了UTF编码
      • UTF
        • UTF-8:使用1、2、3、4个字节表示所有字符;优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个
        • UTF-16: 使用2、4个字节表示所有字符;优先使用2个字节,否则使用4个字节表示。
        • UTF-32: 使用4个字节表示所有字符;
        • 总结:UTF 是为unicode编码 设计 的一种 在存储 和传输时节省空间的编码方案。
    • 编码的转换
      • 解码,编码:GBK和utf-8之间的转换,先将GKB格式解码成unicode,再将unicode编码成utf-8
      • 所有的软件,编程语言都默认支持unicode,那你的gbk软件放到美国人的电脑上,加载到内存里,变成了unicode,中文就可以正常展示了。
    • python2
      • 内存中字符默认编码是ASCII,默认文件编码也是ASCII
      • 当声明了文件头的编码后,字符串的编码就按文件编码来,总之,文件编码是什么,那py2的str就是什么编码
      • python2中的unicode是一个单独的类型,用u'路飞'来表示
      • python2 str == bytes,bytes直接是按字符编码存成的2进制格式存在内存里,通常用bytes表示图片、视频等二进制格式的数据
      • 以utf-8编码的字符串,在windows上不能显示
      • 如何在python2实现写一个软件,在全球各国电脑上,直接看?
        • 以unicode编码写你的软件
    • python3
      • 字符串都是unicode,str = unicode,只有str类型,没有单独的unicode类型
      • 文件编码默认是utf-8,读到内存会被python解释器自动转成unicode
      • bytes与str做了明确区分
      • 所有的unicode字符编码后都会变成bytes格式
    • 文件头
      • python2:以utf-8 or gbk..编码的代码,代码内容加载到内存,并不会被转成unicode,编码依然是utf-8 or gbk...
      • python3:以utf-8 or gbk..编码的代码,代码内容加载到内存,会被自动转成unicode
    • 常见编码错误
      • python解释器的默认编码
      • python源文件文件编码
      • Terminal使用的编码
      • 操作系统的语言设置
  • 相关阅读:
    lombok @Builder注解使用的例子、反编译之后的代码详解
    InfluxDB时序数据库应用场景
    阿里巴巴为什么不用 ZooKeeper 做服务发现?
    使用RestTemplate调用接口上传文件
    当try-catch-finally代码块遇上return,代码执行流程是怎样
    Spring Boot 中application.yml与bootstrap.yml的区别
    Java文件上传:Restful接口接收上传文件,缓存在本地
    线程执行synchronized同步代码块时再次重入该锁过程中抛异常,是否会释放锁
    AMQP协议详解与RabbitMQ,MQ消息队列的应用场景,如何避免消息丢失等消息队列常见问题
    数据库:内联接,外联接,空值和联接
  • 原文地址:https://www.cnblogs.com/GraceZ/p/7854178.html
Copyright © 2011-2022 走看看