如何在unicode中读取oslo配置值

时间:2014-05-21 08:16:54

标签: python unicode

我的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)

有没有办法直接以解码形式从配置中读取数据?

1 个答案:

答案 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字符串,那么现在是时候进行切换了。