在Python 2中初始化OS模块后如何将str变量视为Unicode?

时间:2016-06-16 02:33:28

标签: python unicode

例如,您可以在初始化期间通过在字符串前面添加terraform output address来显式指定Unicode字符串,如下所示:

u

另一方面,如果您将其初始化为普通字符串

path1 = u'./테스트'
# printing type of path1 returns
<type 'unicode'>

如果我将path2 = './테스트' # printing type of path2 returns <type 'str'> 变量传递给path函数以获取目录中的文件,

os.listdir()可以正常使用,而path1会抛出错误path2

我尝试使用UnicodeDecodeError转换path2并将其传递给decode

os.listdir()

检查path3 = path2.decode('unicode-escape') #printing type of path3 returns <type 'unicode'> #but passing it to os.listdir() threw the following error WindowsError: [Error 3] 变量显示解码已更改path

的值
path3

导致系统发出没有名为path1 = ./테스트 path2 = ./테스트 path3 = ./íì¤í¸ 的文件夹的抱怨 所以我错过了什么?是否有不同的方法将字符串变量转换为unicode?

1 个答案:

答案 0 :(得分:1)

'unicode-escape'除非您的字符串包含Unicode转义符,否则不会执行任何有用的操作。对于使用charset解码而使用该字符集进行编码的普通文本。

>>> './테스트'.decode('utf8')
u'./\ud14c\uc2a4\ud2b8'
>>> print './테스트'.decode('utf8')
./테스트