【python中的编码问题】

1、首先要在开头说明编码方式为:utf-8

例如:-*- coding: utf-8 -*-

2、如果遇到字符串,立刻转化为unicode,不要使用str(),直接使用unicode()

unicode_str = unicode(‘中文‘, encoding=‘utf-8‘)
print unicode_str.encode(‘utf-8‘)

3、如果是对于文件操作,打开文件的时候,最好使用codecs.open,替代open

import codecs
codecs.open(‘filename‘, encoding=‘utf8‘)

4、unicode通过encode编码转化成str,str通过decode解码转化成unicode

举个栗子:一个utf-8格式的字符串,先被解码为unicode,这时候不能直接输出,encode编码后就可以输出了

当对字符串进行编码的时候,会先用默认编码将自己解码为unicode,然后再将unicode编码为你指定的编码

一些个人理解,一开始的计算机只支持ASCII码,因为是美国人发明的,所以只支持127个字符;后来为了统一,出现了unicode码,也叫万国码,但是unicode编码的英文会比ASCII码多一倍存储空间,所以就出现了把unicode编码转化为可变长编码的UTF-8编码方式;在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

*****python的字符串类型是str,在内存中以unicode表示,一个字符对应若干个字节,如果要在网络上传输或者保存到磁盘上,就需要把str变为bytes。

python中,bytes类型的数据用带b的前缀的单引号或者双引号表示。以unicode表示的str通过encode()方法可以编码为指定的bytes。

*****反过来,如果从网络或者磁盘上读取了字节流,那么读到的数据就是bytes,要把bytes变为str,就要用到decode()方法。

时间: 2024-10-09 14:50:49

【python中的编码问题】的相关文章

python中的编码与解码

编码与解码 首先,明确一点,计算机中存储的信息都是二进制的 编码/解码本质上是一种映射(对应关系),比如‘a’用ascii编码则是65,计算机中存储的就是00110101,但是显示的时候不能显示00110101,还是要显示'a',但计算机怎么知道00110101是'a'呢,这就需要解码,当选择用ascii解码时,当计算机读到00110101时就到对应的ascii表里一查发现是'a',就显示为'a' 编码:真实字符与二进制串的对应关系,真实字符→二进制串 解码:二进制串与真实字符的对应关系,二进制

浅谈Python中的编码规则

注:本人用Python3.4作为学习版本,以下学习心得只适用于Python3.4. 之前拜读了金角大王Alex关于编码的解答,收获颇多.特此致谢,以下仅谈一谈作为一个初学者,对编码的理解. 我所了解的编码,大致分为两类:第一类是支持中文的编码集:第二类是支持英文的编码集.至于别国的编码集,暂且不做讨论. 常见编码:ASCII:Unicode:UTF-8:big5,:GB2312:GBK:GB18030 接下来,我对以上编码进行分类: 只支持英文和特殊字符的编码:ASCII ASCII是基于拉丁字

python中的编码问题:以ascii和unicode为主线

  1.unicode.gbk.gb2312.utf-8的关系 http://www.pythonclub.org/python-basic/encode-detail 这篇文章写的比较好,utf-8是unicode的一种实现方式,unicode.gbk.gb2312是编码字符集: 2.python中的中文编码问题 2.1 .py文件中的编码 Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正. 一个mo

python中的编码声明

python中的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单 #!/usr/bin/python 相当于写死了 python 路径(是告诉OS执行这个py时,调用 /usr/bin 下的 python 解释器:) #!/usr/bin/env python 会去环境设置寻找python目录,推荐这种写法(目的是为了OS防止user没有将python 装在默认的 /usr/bin 路径里.在Linux类的OS环境下有意义) 如果要在python2的py文件里

python中字符串编码问题

个人遇到问题: 某个文件1,里面有字符创"360云盘" 用cat看 用less命令查看时如下: 是用vim查看时如下: 显然在vim是能够正确识别的,也就是说这3个命令查看文件时,编码方式是不一样的. 下面用file命令来查看本文件的编码方式如下:file 文件名 编码方式是:ISO-8859 这个是什么编码方式呢?它是中文编码方式,由于file命令不是取全文,而是截取文章前面部分进行一个判断的.ISO-8859-1 到ISO-8859-16,其实,也就认为是GB2312的汉字编码方式

python中base64编码与解码

引言: 在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动化时,需要对所传的参数进行base64编码,对拿到的响应报文进行解码: Base64编码是一种"防君子不防小人"的编码方式.广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有"=",生成的编码都是ascii字符.优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合python2中进行Base64编码和解码&g

python中的编码

在编程语言中,基本上有三种编码方式 ascii UTF-8 unicode 还有的就是各国本地的编码方式,比如中国的GBK等 其中ascii编码是早期的编码方式,其中每个字符或英文字母占一个字节(8bit)留下部分的空间作为扩展使用, 随着计算机技术的发展,越来越多的国家需要使用本国的语言作为计算机编码,而ascii编码方式使用的局限性越来越严重,在后期的时候发展成各个国家使用各自的编码,如中国采用GBK等编码方式. 当过编码越来越多的时候,可管理性及重复编码越来越多,国际标准化组织就各编码开发

python中关于编码,json格式的中文输出显示

但我们用requests请求一个返回json的接口时候, 语法是 result=requests.post(url,data).content print type(result),result 得到的结果是 <type 'str'> {"no":12,"err_code":220012,"error":null,"data":{"autoMsg":"","fid&

python中字符串编码转换

字符串编码转换程序员最苦逼的地方,什么乱码之类的几乎都是由汉字引起的. 其实编码问题很好搞定,只要记住一点: 任何平台的任何编码,都能和Unicode互相转换. UTF-8与GBK互相转换,那就先把UTF-8转换成Unicode,再从Unicode转换成GBK,反之同理. 注意:在python3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string # 这是一个 UTF-8 编码的字符串 utf8Str = "你好地球&quo