Python2默认不支持中文。一般我们在程序开头加上#-*-coding:utf-8-*-来解决这个问题,但是当我使用open()方法打开文件时,
文名字却显示成了乱码。
让我先告诉你Python中的编码问题。 Python中的字符串大致分为两种形式:str和Unicode。 str常用的编码类型是utf-
8、gb2312、gbk等,Python使用Unicode作为编码的基本类型。 str记录的是一个字节数组,只是某种编码的存储格式,最后输出到文件或者
打印出什么格式,完全取决于解码编码解码的是什么; Unicode 是一种类似于符号集的抽象编码,它只指定符号的二进制表示。
它并没有指定二进制码应该如何存储,即它只是一种内部表示,不能直接存储,所以存储时需要指定一种存储形式,比如
utf-8等。
Python中有编码转换的函数有:
decode(char_set) 实现char_set解码成Unicodeencode(char_set) 实现Unicode编码成char_set
查看Python文档会发现:
open(filename, 'w')这个方法中,filename这个参数必须是Unicode编码的参数。
我在将编码设置为utf-8之前添加了#-*-coding:utf-8-*-。调用该方法传递参数时,需要将变量filename解码为Unicode。
比如filename='Chinese.txt',在使用open()的时候,这样写open(filename.decode('utf-8'), 'w'),这样创建的中文文件名就不会出现乱码了.
推荐学习《
》!
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 什么是 Python XML 数据01/02
- ♥ 如何在 Python 中使用 Tkinter 制作时钟?12/09
- ♥ 什么是 python 守护线程12/31
- ♥ python开发时如何计算函数运行时间?12/30
- ♥ 什么是python Bellman-Ford算法11/29
- ♥ 以列表为参数的python函数有哪些?01/08
内容反馈