我在处理一个包含“ș”字符的文件时遇到了一些问题(在UTF-8中是\xC8\x99
- 带有逗号下方的LATIN SMALL LETTER S)。
我正在创建一个名为ș.txt
的文件,并尝试通过os.listdir()
获取它。不幸的是,os.listdir()
返回的结果是s\xCC\xA6
("s" + COMBINING COMMA BELOW),而我的测试程序(如下所示)失败了。
这种情况发生在我的OS X上,但在Linux机器上却可以正常工作。你知道是什么原因导致了这种行为吗?(两个环境都使用LANG=en_US.UTF8进行配置)?
这是测试程序:
#coding: utf-8
import os
fname = "ș.txt"
with open(fname, "w") as f:
f.write("hi")
files = os.listdir(".")
print "fname: ", fname
print "files: ", files
if fname in files:
print "found"
else:
print "not found"
files
列表将包含一系列已经规范化的Unicode字符串对象。 - undefinedu'.'
作为listdir的参数。我的路径是Unicode :( - undefined