Windows 中文 GBK 编码,这 TM 烦死我了!

2015-11-09 15:35:55 +08:00
 master13

大家好,我就是前两天被炒鱿鱼的那个傻吊

你们知道想在一个社区混个脸熟有多麻烦吗?

中文简体 Windows 系统竟然是 GBK 编码的

就说#coding=utf8,去读中文路径,你就比如os.walk(r'd:\python\暴走大事件')硬编码在代码里根本读不到任何东西,就因为代码里“暴走大事件”用 utf8 来看待,系统路径用 gbk 存的。想解决这个问题:

难道就没有别的办法吗?

6502 次点击
所在节点    Python
34 条回复
yxaaa123
2015-11-09 15:38:39 +08:00
你用 vs 写,你用 c#啊,不然你换系统啊,扯没用的
paulagent
2015-11-09 15:39:04 +08:00
???
yangtukun1412
2015-11-09 15:40:43 +08:00
用 unicode
lilydjwg
2015-11-09 15:44:14 +08:00
用 Python 3 就好了嘛。
lilydjwg
2015-11-09 15:45:22 +08:00
PS: NT 内部使用的是 UTF-16LE 。就是那堆 W 结尾的 API 。 A 结尾的 API 跟 Python 2 一样,属于历史遗留问题。
wy315700
2015-11-09 15:47:43 +08:00
程序没写好,怪系统喽
firemiles
2015-11-09 15:48:27 +08:00
把 r 改成 u 不就行了
imn1
2015-11-09 15:52:46 +08:00
windows 运行 utf-8 的 py 程序前,先运行"chcp 65001"命令
Narcissu5
2015-11-09 15:54:14 +08:00
cmd 有项参数可以改变字符集。不过有时候 cmd 是被别的程序打开的,比如 ide ,就比较难办了。
9hills
2015-11-09 15:55:22 +08:00
os.walk(r'd:\python\暴走大事件')

你知道字符串前面加『 r 』是什么意思么。。。
zjqzxc
2015-11-09 15:56:12 +08:00
咱能用 python3 么
master13
2015-11-09 16:03:45 +08:00
@9hills 不知道……难道是“日”的意思?
lsmgeb89
2015-11-09 16:18:06 +08:00
看到楼主第一句话震惊了!
9hills
2015-11-09 16:25:19 +08:00
@master13 不知道你为啥要加 r 。。。

写程序的最大忌讳就是不知道你在写什么,搜一下 Python String Unicode 这几个关键词吧
gssdromen
2015-11-09 16:26:03 +08:00
虽然用 GBK 这点的确值得吐槽,但这真的是很好解决的问题...
lilydjwg
2015-11-09 16:30:55 +08:00
@9hills 你知道字符串前面加「 r 」是什么意思么?

回答别人的问题的最忌讳你根本不知道你在说什么,搜一下 Python raw string 吧。
lilydjwg
2015-11-09 16:31:53 +08:00
@firemiles 那样,如果路径里有个 test 目录就不好了。 Python 2 可以 ur'...' 的。不过不一定有用, Python 2 的标准库关于 unicode 的支持是混乱的。
PythonAnswer
2015-11-09 16:34:49 +08:00
py3 无问题.
leavic
2015-11-09 16:42:44 +08:00
#coding:utf8
import os

chs_path=u'中文'
dir=os.path.join(os.curdir,chs_path)
for item in os.walk(dir):
print item
======================
我这还是 python 2.7 ,楼主你离世界级程序员可能差了两个平行宇宙。
fengyqf
2015-11-09 16:47:57 +08:00
咱能不能不用中文做文件名?
或者知道所使用工具的特性和缺陷

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/234805

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX