我有一个<type 'str'>
变量,其中包含一些html。我的问题是,当打印到控制台时,这些特殊字符被编码成这样的"\xfc"
,而不是{
我已经试过了
html = html.encode('utf-8').decode('string_escape')
但没有成功。有谁能指引我正确的方向吗?在
谢谢!在
更新:
这个问题还没有解决。下面是关于这个问题的更多信息。。。在
我从一个外部源接收到一个json字符串,其中除了一些其他内容外,还包含html。我想用xpath以“强力方法”访问html,因为json结构经常更改。在
所以我想用漂亮的汤。在
为此,我将json字符串传递给json.loads()将它变成一个对象。然后我将json对象类型转换为一个纯字符串,并将其传递给beautiful soup。在
这种方法效果很好,除了像ßüÄÜÜßäÜÜÜÜÜÜßäÜÜÜ。在
解决这个问题的最佳方法是什么?在
这是一些伪代码
^{pr2}$这是beautiful soup返回的典型结果(参见Haus f\xfcr Belgien)
<div class="sr_color">
<div style="float:left">
<a class="sr_color" href="">
Haus f\xfcr Belgien
</a>
:
<span>
<span class="sr_num_color">
5,0
</span>
<span style="display:-moz-inline-box;display:inline-block;float:none;vertical-align:-1px" class="star">
<span style="width:65px">
</span>
</span>
</span>
</div>
</div>
您确定您的主机支持unicode吗?Python可以很好地处理字符,但是当它被打印出来时,您的终端可能无法正确地解释它。尝试将字符串写入一个文件,并使用支持unicode的编辑器打开它(甚至可以是html文件并在浏览器中打开它)。在
大多数终端仿真器支持多种编码,可以在它们的选项中设置(取决于所讨论的终端仿真器)。在
\xfc
是ü
在latin1
中的表示。在首先使用您的unicode编码并将其解码为适合您的html控制台:
请注意:
decode
从bytestrings转换为unicodeencode
从unicode转换为bytestringsBytestrings(python2中的
str
,python3中的bytes
)是用于输入(例如HTML)和输出(例如控制台)的内容。Unicode(python2中的unicode
,python3中的str
)是您应该在程序中使用的。在相关问题 更多 >
编程相关推荐