Python3和ConfigParser以不同的方式返回Unicode HTML字符

时间:2018-09-04 12:40:58

标签: python-3.x unicode configparser

我有这个ini文件

[temp]
units = \u00b0 C

如果我使用ConfigParser检索值,则会得到以下结果

pi@pi-vm1:~ $ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from configparser import ConfigParser
>>> parser = ConfigParser()
>>> parser.read('/home/pi/myapp/units.ini', encoding='utf-8')
['/home/pi/myapp/units.ini']
>>> items = parser.items('temp')
>>> print(items[0])
('units', '\\u00b0 C')

这是作为API响应传递的,最终结果是浏览器在页面上呈现\ u00b0。

如果我直接将代码输入:

units = "\u00b0C"

然后可以正常工作,并显示为度数符号

因此,基本上这两行呈现了不同的输出。

units = unitsConfig['units']
units = "\u00b0C"

如何获取配置文件方法以返回与直接在代码中指定的字符串相同的字符串?

1 个答案:

答案 0 :(得分:0)

ConfigParser语法与Python语法不同。 .ini文件格式没有像Python那样的字符串转义机制。

如果要在值中包含度符号,只需在配置文件中插入文字°:

units = °C

然后确保.ini文件使用UTF-8保存,因为稍后您将使用此编解码器读取该文件。 那应该可以解决问题。