python 在Shell中显示中文乱码解决
来源:互联网 发布:gre词汇精选淘宝 编辑:程序博客网 时间:2024/06/03 04:41
在python中使用mechanize从网上拉下一张网页,使用read()读取页面内容后,print显示。在IDE(Eclipse)中直接运程序后,显示中文正常。但在Shell中测试时,read()后print的显示就是乱码了。
程序源码
from mechanize import Browserbr=Browser()r=br.open("http://www.######.net")s=r.read()print s
运行后显示:
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta content="中国#######网上营业厅,中国########" name="keywords" />
一切正常,但在Shell中测试时,按行输入上述代码,显示却是:
'\xef\xbb\xbf<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\n<head>\r\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r\n <meta content="\xe4\xb8\xad\xe5\x9b\.....
使用decode('utf8')转码后,显示仍为:
u'\ufeff<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\n<head>\r\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r\n <meta content="\u4e2d\u56fd\....
多次查询后,发现问题在输出的前几个字符“'\ufeff”,去除这个字符后,显示就正常了。
假定使用如下语句获得输出:
s=r.read()
在shell中使用“print s.decode("utf-8")[1:]”,输出就正常了。
网上说明原因为:
某些软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),转码后是“'\ufeff”,因此我们在读取时需要自己去掉这些字符。
- python 在Shell中显示中文乱码解决
- 解决Ubuntu中文显示为乱码,shell中乱码
- python shell 中文乱码解决
- 解决在Navicate中,中文显示'???'乱码问题
- python matplotlib中文显示乱码解决
- 在Linux的终端和Shell中显示中文时显示乱码的解决办法
- 解决Centos中中文显示乱码问题
- 解决QT4中中文显示乱码问题
- 解决mysql命令行中显示中文乱码
- linux中显示中文乱码如何解决?
- [Android]解决Window系统adb shell后中文显示乱码
- [Android]解决Window系统adb shell后中文显示乱码
- 解决Windows系统adb shell中文显示乱码
- [Android]解决Window系统adb shell后中文显示乱码
- 解决Window系统adb shell后中文显示乱码
- 解决Window adb shell后中文显示乱码
- 解决Window系统adb shell后中文显示乱码
- 解决 ssh secure shell client端中文显示乱码问题
- http和HTTPS的区别及SSL介绍
- hdu 4311
- 青春划过指尖
- android游戏开发学习笔记二(学习书籍 Android游戏编程之从零开始)
- android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始)
- python 在Shell中显示中文乱码解决
- 二级目录拖拽排序的实现及演示源码下载
- 七剑下天山
- Face.com API替代版:Lambda Labs推出开源Face API
- Oracle中的保留字(关键字)
- 整了我好多天mysql中文乱码的问题
- 蝴蝶兰与鳞托菊
- wpf list<T>与ObservableCollection<T>的区别
- android游戏开发学习笔记四(学习书籍 Android游戏编程之从零开始)