Linux下遇python中文转码问题

老猫学菜 发布于 2015/07/02 10:35
阅读 2K+
收藏 0

问题描述:

运行环境是Centos,Python版本为2.6;现在通过python获取的HTML代码为GBK,在WINDOWS下输出显示中文字符正常,在LINUX下输出中文字符为乱码;

把PYTHON设置:sys.setdefaultencoding('gbk') WINDOWS下运行正常

在LINUX下:UnicodeEncodeError: 'gb2312' codec can't encode character u'\xc3' in position 9: illegal multibyte sequence


请高手帮解决下,谢谢

加载中
0
yongzhong
yongzhong

改sys没什么用的

你试试html.decode('utf-8')

老猫学菜
老猫学菜
这些都试了,不行,会不会是LINUX系统本身支持中文的问题?在WINDOWS下都没有问题
yongzhong
yongzhong
文件头记得补上#coding=utf-8
0
yongzhong
yongzhong

那你先decode('gbk'),再encode('utf-8')


老猫学菜
老猫学菜
.decode('gbk').encode('utf-8') 输出: 脥炉脳掳脜庐脥炉脧脛脳掳脤脳脳掳2015脨脗驴卯露霉脥炉露脤脨盲脤脳脳掳脜庐麓贸脥炉脧脛录戮脭脣露炉脨脻脧脨脕陆录镁脤脳 这种情况。相当头疼~
0
老猫学菜
老猫学菜

同样的代码,在不同的系统输出是这样的

WINDOWS:

Linux:

0
老猫学菜
老猫学菜

引用来自“页永仲”的评论

那你先decode('gbk'),再encode('utf-8')


同样的代码,在不同的系统输出是这样的

WINDOWS:

Linux:

yongzhong
yongzhong
第一个是unicode转义,第二个是ascii转义
0
Feng_Yu
Feng_Yu
统一decode成unicode再print,跨平台不乱码
0
s
spetpet
先运行env看看你的centos里面的LANG设置的系统默认编码是什么,比如我是LANG=zh_CN.GB2312,然后用decode('gb2312')转成unicode,再encode('utf-8')就应该没有问题了
0
fromdtor
fromdtor

注意发送请求时使用的url的编码,确保为utf8试试

返回顶部
顶部