win下python新建文件名有ã字符是怎么回事,winpython,win下,下面程序:#!
win下python新建文件名有ã字符是怎么回事,winpython,win下,下面程序:#!
win下,下面程序:
#! /usr/bin/env python# coding:utf8name = '中文ero.txt'name = name[:].decode('utf-8').encode('gb2312')f = open(name, 'w')f.write("正文如下:abcdefVerão")f.close()
可以正常新建一个带有中文名字的文件,这点可以理解。但是如果文件名包含有ã(鬼知道这是哪国的字符,不过应该不是中文字符,在一个.mp3文件名中看到了这个字符),即
name = '中文eroã.txt'
则出现以下错误:
UnicodeEncodeError: 'gb2312' codec can't encode character u'\xe3' in position 5:
illegal multibyte sequence
应该是因为ã不是中文字符,因此gb2312无法编码它。
但是问题是,为什么直接新建文件时就可以使用这个字符作为文件名呢,并且在控制台dir命令还可以看到这个字符(话说控制台的输出编码不是gb2312吗)。
win7 中文版文件名的内部存储是怎么编码的呢?
-----
还是linux好啊,不用遇见这么蛋疼的问题...
Windows NT内核采用的是UTF-16编码Unicode字符串。
你说遇到的问题只是GB2312覆盖范围太少,请GB18030编码。
补充说明:
文件名完全可以使用unicode字符串:
name = u'中文eroã.txt'f = open(name, 'w')-----
编橙之家文章,
相关内容
- Ubuntu12.04 urllib2打印时乱码问题,ubuntu12.04urllib2,代码如
- Python方法获取得文件创建日期不正确是为什么?,pytho
- py2exe编译链接python代码报错ImportError,py2exeimporterror,使
- 请教python下载网页torrent文件的方法,pythontorrent,http:/
- Python统计网站流量及访客求交流,python访客,统计网站的
- python fabric批量管理多台server执行方法问题,pythonfabri
- 请问有Vim编辑器删除末尾空白字符操作快捷方式吗?,
- android解锁种数代码哪位python大神精通望指点,androidp
- 为什么我的for循环列表中最后一项总会被覆盖的原因是
- 我的python DHT11测温代码运行出错是如何解决,pythondht
评论关闭