17.3.13--python编码问题

1----字符编码:

    字符编码(英语:Character encoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数串行、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。

    常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

    ASCII(pronunciation: 英语发音:/ˈæski/ ASS-kee[1],American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,它主要用于显示现代英语,而其扩展版本EASCII则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。由于万维网使得ASCII广为通用,直到2007年12月,逐渐被Unicode取代

        0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符)

        32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字

        65~90为26个大写英文字母,

        97~122号为26个小写英文字母,其余为一些标点符号、运算符号等

 

    Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字Unicode至今仍在不断增修,每个新版本都加入更多新的字符。目前最新的版本为7.0.0,已收入超过十万个字符(第十万个字符在2005年获采纳)。Unicode涵盖的数据除了视觉上的字形、编码方法、标准的字符编码外,还包含了字符特性,如大小写字母。

          

    UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或发送文字的应用中,优先采用的编码

        python2默认的编码是ascii

如何避免中文乱码:

1)使用utf-8编码方案

    #-*-coding:utf-8-*-

    #coding:utf-8  

2)或者遇到字符(节)串,立刻转化为unicode,不要用str(),直接就用unicode()

    unicode_str=unicode('中文‘,eccoding=‘utf-8’)

    printunicode_str.encode('utf-8')

3)如果对文件操作,打开文件的时候,最好用codecs.open,替代open(这个后面会讲到,先放在这里)

    

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

      

posted @ 2017-03-13 16:22  小油菜1  阅读(110)  评论(0编辑  收藏  举报