python编码问题

1.1. 解决文件模式python代码出现中文乱码问题(如:记事本)

(1)使用中文需要在第一行声明编码:#coding=utf-8

(2)中文字符串前要加:u  如:u中文

(3)文件另存为”UTF-8”编码格式

说明 :raw_input中的中文除外,raw_input的中文方法如下:

           s=raw_input(“中文”.decode(“utf-8”).encode(“gbk”))

1.2. 常见的编码格式

ASCII:美国信息交换标准代码(American Standard Code for Information Interchange),包含256个字符

GB2312:适用于汉字

GBK:是汉字编码标准之一,是在GB2312基础上扩展的

ANSI:windows操作系统有关,像win7简体中文版中是GBK

Unicode:世界所有字符的编码

Utf-8:Unicode的一种实现方式;把汉字或其他字符保存为1-3个字节;完全兼容ASCII(256个字符)  (优点:节省空间)

Utf-16:保存为2个字节

Utf-32:保存为4个字符 (缺点:很占内存) 

1.3. 查看/获取系统的编码

>>> import sys

>>> sys.getdefaultencoding() 

'ascii'

1.4. 设置/修改系统的编码

>>> import sys

>>> reload(sys)  #需要新加载一下 原因在下面:

<module 'sys' (built-in)>

>>> sys.setdefaultencoding("gbk")

>>> sys.getdefaultencoding()

'gbk'

说明:为什么要reload sys模块?

      在site.py文件里有这样一段代码:

           if hasattr(sys,"setdefaultencoding"):

               del sys.setdefaultencoding

      在sys加载后,setdefaultencoding方法被删除了,所以我们要通过重新导入sys来设置系统编码

posted @ 2017-11-22 23:04  reyinever  阅读(151)  评论(0编辑  收藏  举报