zoukankan      html  css  js  c++  java
  • 编码方式

    Python3中有两种格式:

        str:str>>bytes 称为编码(encode)方法有1.re=bytes(“ccc”,“utf8”)2.re=“ccc”.encode(“utf8”)py3中str都是Unicode编码。兼容utf8,三字节表示中文。

        bytes:bytes>>str称为解码(decode)方法有1.re = str(“ccc”,“utf8”)2.re=“ccc”.decode(“utf8”)bytes类型有相对应的编码协议。即什么样的编码形式               (如utf8)就仍用什么样的解码。

    Python2中也有两种:

      str:即原来的3中的bytes s=“曹” 无法print,会报错。即使声明utf8,但是存储方式为bytes。

      Unicode:即str u“你好” 表示内容用的Unicode编码。

    pyhton3中页面用到utf8,2中用的阿斯克码。

    主要问题:

    1.如何保存到磁盘的,如何取出来。

    在pycharm中,每次写入文件都会自动保存到磁盘中,存入的编码为pycharm默认的编码方式(2中为ascii,3中为utf8)。

    所以在pycharm中再运行此文件时,解释器也必须按照存入的编码方式运行。所以我们在文件前两行声明encoding:***。(声明是给解释器看的)

    这样运行不出错。同时,声明之后pycharm会锁定右下角编码格式保证两者的 统一性。

    2.py3中,字符串的在内存中保存方式都是Unicode。所以在cmd中运行文件后,py3中正常显示,py2中会报错。py的汉字存储的是btyes。

    3.涉及到open,下图问题:

    上图中的乱码问题

    运行文件中用到open时,会调用操作系统打开文件,而win用的是gbk。返回给read后是gbk编码后的格式,所以解释器用的默认utf8无法正确解码。test中是两个字,所以有6个字节的utf8格式的字节码。而gbk两个字节一个字,显示了3个汉字。

    解决办法:加个打开时解码方式。

    f = open("test","r",encoding='utf8')
    print(f.read())

     详细:http://www.cnblogs.com/khal-Cgg/p/5948805.html

  • 相关阅读:
    母版
    扣点计算
    付费推广的投入产出比达到多少才合理?
    关于京东POP和采销双平台选择合作
    学习Swift--枚举的初步认识 --个人备忘 大神勿喷
    前台操作及技巧的一些文档
    ABAP 四舍五入函数
    设置ALV 行颜色
    初学笔记
    模块 BAPI
  • 原文地址:https://www.cnblogs.com/khal-Cgg/p/5948802.html
Copyright © 2011-2022 走看看