簡體   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