美文网首页
Python2.X 中的编码问题

Python2.X 中的编码问题

作者: 进击的研究僧 | 来源:发表于2017-03-24 16:09 被阅读0次

(内容属于摘录)

一、文件头部声明编码

1、格式

符合正则表达式 "coding[; =]\s([- \w+])"的字符串都满足

2、作用

对Python文件编码类型的声明,若没有此编码,则Python默认以ascii编码去处理(如果没有声明编码,而文件中又有非ascii类型的字符,则Python解释器会报错)

二、defaultencoding

1、设置代码

import sys

reload(sys)

sys.setdefaultencoding()  设置/  sys.getdefaultencoding()  获取

2、说明

如果不设置defaultencoding,那么Python在编码解码的时候就会使用默认的defaultencoding(Python2.x中默认为ascii,Python3.x中默认为unicode)

str.encode("utf-8") 等价于 str.decode(defaultencoding).encode("utf-8")

如果str的编码是ascii,则不会报错,但是含有非ascii字符的str,Python的解释器会报错

u=unicode("人生苦短") 等价于 u=unicode("人生苦短",defaultencoding)

三、decode与encode

decode与encode

如果代码里面混合使用了 str 类型和 unicode 类型的字符串,Python 会默认使用 ascii 编码尝试对 unicode 类型的字符串编码 (encode),或对 str 类型的字符串解码 (decode),这时就很可能出现上述错误。

1、在进行同时包含 str 类型和 unicode 类型的字符串操作时,Python2 一律都把 str 解码(decode)成 unicode 再运算,这时就很容易出现 UnicodeDecodeError。

2、如果函数或类等对象接收的是 str 类型的字符串,但你传的是 unicode,Python2 会默认使用 ascii 将其编码成 str 类型再运算,这时就很容易出现 UnicodeEncodeError。

四、获取某一变量的编码类型:

import chardet

chardet.detect(Variable_name)

相关文章

  • Python2.X 中的编码问题

    (内容属于摘录) 一、文件头部声明编码 1、格式 符合正则表达式 "coding[; =]\s([- \w+])"...

  • 编码与解码问题

    编码与解码 对于我这样的新手来说python2.x的编码解码问题真是个坑,什么decode,encode,好乱好乱...

  • python_解决UnicodeEncodeError: 

    问题原因:由于python2.X默认编码是ascii, 解决方案:修改系统默认编码方式-》utf在python的L...

  • Python 2

    针对Python2.x中Python中默认的编码格式是ASCII格式,在没修改编码格式时无法正确打印汉字。解决办法...

  • python 编码问题

    以前python2.x版本的编码问题较多,所以这里只针对python3.x版本的问题进行讨论。 Unicode 编...

  • Python小经验

    搭建简单HTTP服务器 进入某一目录,直接运行以下命令 Python2.x编码问题 如果遇到unicode类型字符...

  • 默认Python源文件编码

    Python2.x 1. 默认编码为 ASCII 2. 显式声明编码类型为‘UTF-8’ # Add the be...

  • python入门 第二天 str

    编码与解码# -*- coding:utf-8 -*-# python2.x中使用temp = "张三"# 解码需...

  • Python2.x 与Python3 的编码问题

    首先说明的是,在Python3中所有字符串只有一个unicode 类型,例如u'**'和'**'的数据类型是一样的...

  • 编码

    参考:字符编码常识及问题解析深入分析 Java 中的中文编码问题 关于字符编码,你所需要知道的 编码是什么? 编码...

网友评论

      本文标题:Python2.X 中的编码问题

      本文链接:https://www.haomeiwen.com/subject/bdixottx.html