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如何判断字符串的编码09/29
- ♥ Python快捷代码片段的使用12/25
- ♥ python遗传算法的优化过程是怎样的?12/25
- ♥ python中的itertools模块是什么?11/28
- ♥ python有少儿编程吗?01/01
- ♥ python如何判断是否为空10/13
内容反馈