python2.7解决中文编码问题

    粗略地介绍下编码知识,首先我们认为是字节是面向计算机的,字符是面向人类的,相互的转换就是解码和编码,在各种编码中,ASCII码是7位,用不到一个字节,7个比特来表示字符,这样最多也只有127个字符,ISO8859-1用一个字节8个比特表示字符,可以表示256个字符,GB2312是用2个字节,16个比特,可以包含7000多个字符,其次UNICODE(Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode”)包含上述各种编码的字符,并且每一个字符都具有编码的唯一性,随着互联网的快速发展,传输格式UTF(UCS Transfer Format)标准必须统一,8位一传输就是UTF-8,以后又出现了UTF-16,由GBK变成UNICODE叫做DECODE,由UNICODE变成GBK叫做ENCODE,下面我们看下在PYTHON中的代码

import sys

print sys.stdin.encoding

print sys.stdout.encoding

input-str=raw_input(u'输入:'.encode(sys.stdout.encoding))

f=open('test.txt','w')

f.write(input-str.decode(sys.stdin.encoding).encode('utf-8'))

f.close

通过对系统输入输出编码的识别,可以避免由于中文带来的乱码

你可能感兴趣的:(编程,运维)