我的nova.conf
文件中有一些日语字符。
クラ
从配置文件中读取后,我必须在utf-8
中解码它
my_data = CONF.test.test
my_data = my_data.decode('utf-8')
当我使用不带解码的变量时,它会给出UnicodeDecodeError
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
有没有办法直接以解码形式从配置中读取数据?
答案 0 :(得分:1)
有没有办法直接以解码形式从配置中读取数据?
不在python 2.7中。因为在python 3之前的python中,字符串默认为ASCII字符串,而在python 3中字符串默认为unicode字符串。所以基本上:
>>> mydata = "クラ"
>>> print mydata.decode('utf-8')
クラ
>>> print mydata
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
而在python 3中:
>>> mydata = "クラ"
>>> print(mydata)
クラ
因此,如果您想轻松处理unicode字符串,那么现在是时候进行切换了。