python3.x - python输出特殊字符报错
天蓬老师
天蓬老师 2017-04-17 17:37:51
[Python讨论组]

python版本3.5.1,print 输出 © 字符报错,试了用decode转换也没用,求大神解决的办法!

print("\xa9")

UnicodeEncodeError: 'gbk' codec can't encode character 'xa9' in position 0: ill
egal multibyte sequence

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
大家讲道理

python3

IDLE下运行是正常的。楼主没说你是怎么运行的?

输出的字符会被转换成终端的编码。

windows下的cmd 默认是cp936。
所以你直接运行的时候这个字符会被python尝试转成gbk编码,转换失败后就这样了。

解决方法之一是用IDLE中执行你的代码。

方法之2,cmd 中先执行chcp 65001把cmd的默认编码改为unicode,再执行python
http://imysqldba.blog.51cto.com/1222376/706672

怪我咯
# coding=utf-8
a = '©'
print a

输出结果:

如果把代码中的# coding=utf-8去掉,抛如下异常:

SyntaxError: Non-ASCII character '\xc2' in file D:\web\file_test.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

然后我又写成这样:

# coding=utf-8
b = '\xa9'
print b

报错了:

Decode error - output not utf-8
(这个错是Sublime的问题,在命令行下未报错,也什么都没输出)

虽然我用的是2.7,且异常和题主不一样,但可以参考。
编码问题一直是程序员最头疼的问题之一……

大家讲道理

可能是终端的问题吧,我用python 2.7.6 自带的IDLE,不报错,只不过输出了一个方框

ringa_lee

这个字符被当成gbk字符了,你确定版权符是这样写的?

阿神

环境变量语言设一下试试看

伊谢尔伦

专门装了下3.5.1试了下

Python 3.5.1 (default, Apr 22 2016, 09:00:13) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("\xa9")
©

我这边好像没什么问题

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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