ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 >> 编写高质量代码--改善python程序的建议(三)

编写高质量代码--改善python程序的建议(三)(2/4)

来源:网络整理     时间:2015-12-31     关键词:

本篇文章主要介绍了"编写高质量代码--改善python程序的建议(三)",主要涉及到方面的内容,对于Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 原文发表在我的博客主页,转载请注明出处!建议十三:警惕eval()的安全漏洞 相信经常处理文本数据的同学对eval()一定是欲罢不能,他的使用非常简单:eval...


建议十六:考虑兼容性,尽可能使用Unicode
python内建的字符串有两种类型:str和Unicode,它们拥有共同的祖先basestring。
Unicode也称做万国码,它为每种语言设定了唯一的二进制编码表示方式,提供从数字代码到不同语言字符集之间的映射,从而可以满足跨平台、夸语言之间的文本处理要求。
Unicode编码系统可以分为编码方式和实现方式两个层面,在编码方式上,分为UCS-2和UCS-4两种方式,UCS-2用两个字节编码,UCS-4用4个字节编码。一个字符的Unicode编码是确定的,但是在实际传输过程中,由于系统平台的不同以及处于节省空间的目的,实现方式有所差异。Unicode的实现方式称为Unicode转换格式,简称为UTF,包括UTF-7、UTF-16、UTF-32、UTF-8等,较为常见的是UTF-8.他的特点是对不同范围的字符使用不同长度的编码,其中0x00 ~ 0x7F的字符的UTF-8编码与ASCII编码完全相同,UTF-8编码的最大长度是4个字节。
通常用python处理中文字符经常会遇见一下几个问题。

  • 读出文件的内容显示为乱码

    fp = open("test.txt","r")
    print fp.read()
    fp.close()

    问题:读入的文件test.txt用UTF-8编码形式保存,但是Windows的本地默认编码是CP936,在Windows系统中它被映射为GBK编码,所以直接显示UTF-8字符的时候,不兼容。解决办法:首先对读入的字符用UTF-8进行解码,然后再用GBK进行编码。

    fp = open("test.txt","r")
    print (fp.read().decode("utf-8")).encode("gbk")

    decode()方法讲其他编码对应的字符串解码为Unicode,而encode()方法将Unicode编码转换为另一种编码。
    另外:上面的例子在某些情况下(如test.txt使用Notepad软件以UTF-8编码形式保存)可能还会出现异常,这是因为有些软件在保存UTF-8编码的时候,会在文件最开始的地方插入不可见的字符BOM,利用codecs模块可以方便地处理这种问题

    import codecs
    fp = open("test.txt",'r')
    content = fp.read()
    fp.close()
    if content[:3] == codecs.BOM_UTF8:
    content = content[3:]
    print content.decode("utf-8")
  • 当python源文件中包含中文字符的时候抛出SyntaxError异常
    python中默认的编码是ASCII编码,为了让接收器知道如何正确处理字符,需要在源文件中进行编码声明,声明可以用正则表达式表示

    "coding[:=]\s*([-\w.]+)"

    一般来说进行源文件编码声明有三种方式:

#coding=

#!/usr/bin/python
# -*- coding:  -*-

#!/usr/bin/python
# vim: set fileencoding=:

相关图片

相关文章