例如,您可以在初始化期间通过在字符串前面添加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? p>
答案 0 :(得分:1)
'unicode-escape'
除非您的字符串包含Unicode转义符,否则不会执行任何有用的操作。对于使用charset解码而使用该字符集进行编码的普通文本。
>>> './테스트'.decode('utf8')
u'./\ud14c\uc2a4\ud2b8'
>>> print './테스트'.decode('utf8')
./테스트