关于Python读取中文(可能也包括其他一些奇葩的字符)文件,并成功在Windows终端上显示的问题
来源:互联网 发布:php 打印数组 编辑:程序博客网 时间:2024/05/16 07:15
其实这个问题的关键在于两点,一点就是你读取的内容要是utf-8编码的,其次你的终端需要默认支持显示所有utf-8编码的字符。
python3在读取文件上这里做了不错的优化,你只需要在打开文件时,写明你读取的格式即可。
with open(filename,'r',encoding='utf-8') as f: print(f.read())
但今天我实际遇到的情况是从网页获取源码的情况,这个也很简单,只需要你用decode('utf-8') e.g.
with urllib.request.urlopen(url) as f: data=f.read().decode('utf-8')当然,如果你用mac或者Linux,你会发现这样就ok了,但是Windows上面还是不行,当然,如果只有中文的话,是OK的,下面只针对一些显示不出来的奇葩字符。
下面就讲一下如何让终端可以显示全部utf-8字符。
首先介绍一下chcp [nnn]命令,后面的参数是可选的它是用来显示或设置活动代码页的编号的。输入chcp,查看当前代码页你会发现是936,也就是gb2312的中文编码,所以它无法显示全部的utf-8编码,那么只要切换到utf-8的编号就好了,输入 chcp 65001。
然后右击标题栏,点击属性--->字体---->切换到lucida console后,你就发现可以成功显示了。不过,蛋疼的是,你输入这个命令以后会发现你的中文输入法无法使用了,虽然你还可以切换到中文输入法,但是他被锁死在英文。这个貌似目前还无法解决,所以最好的办法就是不要用windows的终端了,改用Linux系统却进行python开发,或者安装cygwin,这个软件是用来在Windows平台上来模拟类Unix的环境的。
阅读全文
0 0
- 关于Python读取中文(可能也包括其他一些奇葩的字符)文件,并成功在Windows终端上显示的问题
- python在终端上中文乱码问题的小结
- 关于GTK+ widget上显示中文字符有误的问题!
- Android 关于DataBinding在Windows上中文字符的bug
- 在action中,数据添加、修改成功后,向页面显示提示信息,包括可能出现的问题。
- 关于python处理作Excel文件的一些问题,包括时间处理 (转)
- 关于python处理作Excel文件的一些问题,包括时间处理 (转)
- 关于Windows系统下,Python读取文件的问题。
- 最近在看一些关于字符集的文章,什么iso8859-1 unicode utf8 gb2312,突然想起在linux终端上显示汉字的问题.
- python 字符编码 调用其他程序 的一些问题记录
- 关于读取CocoStudio的ui文件可能遇到的问题
- windows中python显示中文的问题
- 在Windows下使用TinyXML-2读取UTF-8编码包含中文字符的XML文件
- 关于jsp文件在页面上显示乱码的问题
- 在MFC中,不借用其他的库函数读取BMP图像,显示,也可以重新生成
- 关于mysql中如何显示中文及在myeclipse上关联mysql等的一些小结
- Python 用win32读取excel文件的奇葩报错
- 关于‘无法为更新定位行。一些值可能已在最后一次读取后已更改’问题的解决办法
- qt_5_7_1_windows 搭建android开发环境
- Looper与Handler
- Bitmap 图片的二次采样
- 古文觀止卷八_諱辯_韓愈
- void 0 与 undefined
- 关于Python读取中文(可能也包括其他一些奇葩的字符)文件,并成功在Windows终端上显示的问题
- wireshark常见提示解析
- 用户请求消息的封装和解析
- c++多态
- UVA.12169 Disgruntled Judge ( 拓展欧几里得 )
- HDU 1260 Tickets【线性dp】
- 线程之间的通信--等待唤醒机制
- pytorch: 如何优雅的将 int list 转成 one-hot形式
- java通过URL下载文件