繁体   English   中英

如何在Python中使用特殊字符转换字符串变量以正确打印

[英]How to convert a string variable with special characters in Python to print properly

很抱歉,如果标题令人困惑,但我已经彻底研究了两个小时,并且不知道我应该如何提出这个问题,所以任何人都可以随意编辑这篇文章。

我有这个使用web抓取创建的字符串变量,它使用特殊字符,当我打印它时看起来像“\\ ud83d \\ ude00 \\ u0107 \\ u00e7 \\ n hello”而没有引号。 问题是我希望它打印实际的特殊字符,但我不确定我应该使用什么编码方法。 如果我复制并粘贴确切的字符串并打印它,它工作正常,但作为我创建的变量,它不显示特殊字符,只显示文本。

我已经尝试将它转换为字符串,使用json.load,unicode-escape,UTF-8和其他一些但我真的不确定我应该使用什么方法

page = requests.get('https://www.example.com')
soup = str(BeautifulSoup(page.text, 'html.parser')).splitlines()

for line in soup:
    if 'hello' in line:
        print(line) #produces literal text of \ud83d\ude00\u0107\u00e7 \n hello

print('\ud83d\ude00\u0107\u00e7 \n hello') #produces wanted result

我希望结果看起来像这样:

😀ćç

你好

a = "\?\?\ć\ç \\n hello"

 a.encode('utf-16', 'surrogatepass').decode('utf-16')    

输出:

'😀ćç \n hello'

经过另一个小时的反复试验,我发现这就是答案:

line.encode('utf-8').decode('unicode-escape')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM