Python2.7 在windows命令窗口 输出中文乱码

巴扎黑
发布: 2017-06-23 16:01:19
原创
3459人浏览过

本文实例讲述了在windows命令窗口下执行python文件产生乱码的问题, 供大家参考:
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免费学习笔记(深入)”;

深度分析

这种方法有一种弊端 就是当我们在跨平台的时候就会出现问题, 因此Python 为我们提供了一个方便的解决方案使用 unicode 作为输出 -- 此方法不适用于raw_input

当需要打印输出时,Python 会首先调取字符输出程序(命令行或者输出函数)的编码格式,然后将该字符串编码成字符输出程序所用的编码(这样字符输出程序就不会因为认不出编码而出现乱码),接着字符输出程序将编码后的字符输出到目的地。

解决方法

# 方法一  中文前加u, 告诉Python解释器后面的是个unicode编码str = u"彦雪"
登录后复制
# 方法二  str.decode('utf-8') 以utf-8编码对字符串 str 进行解码, 获取unicodestr = "彦雪".decode('utf-8')
登录后复制
# 方法三  unicode(str, 'utf-8') 将字符串 str 以utf-8编码解码, 获取unicodestr = unicode('彦雪','utf-8')
登录后复制

在windows命令窗口raw_input 显示乱码

使用raw_input 需要将中文转换为系统编码, 方法如下列所示

AI Room Planner
AI Room Planner

AI 室内设计工具,免费为您的房间提供上百种设计方案

AI Room Planner 91
查看详情 AI Room Planner
# 方法1  str.encode("gbk") 将unicode转为gbk 编码content = raw_input(u"输入内容: ".encode("gbk"))
登录后复制
# 方法2content = raw_input("输入内容: ".decode('utf-8').encode("gbk"))
登录后复制
# 方法3content = raw_input(unicode('输入内容: ','utf-8').encode("gbk"))
登录后复制

虽然这种写法很方便, 但是跨平台效果较差, 个人不推荐这种写法, 建议中文字符和raw_input 分开写. 通过其他手段达到在同一行的目的

扩展阅读

Python的编码注释# -- coding:utf-8 --

PEP 263 -- Defining Python Source Code Encodings

关于Python的编码、乱码以及Unicode的一些研究

raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题

探寻

目前离职, 在等待的过程中, 分享下以前经常遇到的问题和大家探讨, 希望对大家有所帮助, 欢迎指正
在分享知识中寻找自我,享受编程之乐

以上就是Python2.7 在windows命令窗口 输出中文乱码的详细内容,更多请关注php中文网其它相关文章!

相关标签:
python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号