你所需要的,不仅仅是一个好用的代理。
本文实例讲述了Python在windows命令窗口下产生乱码的问题. 分享给大家供大家参考:
Ps: 如有错误还请指正, 欢迎交流学习
# -*- coding:utf-8 -*-
str = "彦雪"
print str
显示结果如下:
褰﹂洩
乱码结果和大家可能不同, 不过也都是乱码啦!!
Python2 默认编码为 "ascii", ascii编码不包含中文字符
如果在其中有中文字符的话, Python解释器一般会报错.
但如果指定了以UTF-8 编码, Python就不再报错.
"# - - coding:utf-8 - -" 是指定Python源码以 UTF-8 编码。
window默认编码为gbk编码,所以str输出前必须编码为gbk。
由于Python中不允许直接将将utf-8 转为gbk, 因此需要先将utf-8 转为unicode 再转为gbk
这种方法有一种弊端 就是当我们在跨平台的时候就会出现问题, 因此Python 为我们提供了一个方便的解决方案使用 unicode 作为输出 -- 此方法不适用于raw_input
当需要打印输出时,Python 会首先调取字符输出程序(命令行或者输出函数)的编码格式,然后将该字符串编码成字符输出程序所用的编码(这样字符输出程序就不会因为认不出编码而出现乱码),接着字符输出程序将编码后的字符输出到目的地。
# 方法一 中文前加u, 告诉Python解释器后面的是个unicode编码
str = u"彦雪"
# 方法二
str = "彦雪".decode('utf-8')
# 方法三
str = unicode('彦雪','utf-8')
使用raw_input 需要将中文转换为系统编码, 方法如下列所示
# 方法1.
content = raw_input(u"输入内容: ".encode("gbk"))
# 方法2.
content = raw_input("输入内容: ".decode('utf-8').encode("gbk"))
# 方法3.
content = raw_input(unicode('输入内容: ','utf-8').encode("gbk"))