您的位置:首页 > 编程语言 > Python开发

Python2.7.13中文乱码问题

2017-07-16 10:33 211 查看
一个通过输入数字输出中文’星期几’的简单程序,由于使用的python2,期间遇到了中文乱码的情况,经过多次试验已解决。两个程序都可以

weekdays='星期一星期二星期三星期四星期五星期六星期日'
n=raw_input("请输入星期几(1-7):")
pos=(int(n)-1)*6
weekAbbrev=weekdays[pos:pos+6]
print "你输入的是:"+weekAbbrev


这里python直接采用默认中文编码方式gbk/gb2312,一个中文字占两个字节。

# -*- coding: utf-8 -*-
weekdays='星期一星期二星期三星期四星期五星期六星期日'
n=raw_input("请输入星期几(1-7):".decode('utf-8').encode('gbk'))#gbk也可以换成gb2312
pos=(int(n)-1)*9
weekAbbrev=weekdays[pos:pos+9]
print "你输入的是:"+weekAbbrev.decode('utf-8').encode('utf-8')


utf-8用三个字节表示一个中文字。

若不加第一行,则第三行不进行编码解码可以实现,因为python默认对中文采取gbk/gb2312编码,但若加了第一行,input中提示的中文以utf-8编码则需以utf-8解码后再转换成gbk/gb2312编码才能正确显示。(这里不是很明白)而最后一行print编码解码都必须是utf-8。

希望大神解惑!!!小白一个。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python语法