簡體   English   中英

如何在python中將unicode字符轉換為它們各自的符號?

[英]How to convert unicode characters into their respective symbols in python?

我有一個文本文件,其中包含以下格式的unicode字符:

\u0935\u094d\u0926\u094d\u0928\u094d\u0935\u094d\u0926\

我想將其轉換為以下格式的devnagri字符:

वर्जनरूपमिति दर्शित्म् । स पूरुषः अमृतत्वाय कल्पते व्द्न्व्द

然后將其寫入文件。 目前我的代碼

encoded = x.encode('utf-8')
print (encoded.decode('unicode-escape'))

可以在終端上打印devnagri字符。 但是,當我嘗試使用將其寫入文件時

text = 'target:'+encoded.decode('unicode-escape')+'\n'
fileid.write(text)

我收到以下錯誤。

'ascii' codec can't encode characters in position 7-18: ordinal not in range(128)

有人可以幫我嗎?

如果您使用的是Python 2,那是因為使用.decode('unicode-escape')您有了一個unicode對象,而fileid.write()僅接受字符串對象。 然后,Python嘗試使用不覆蓋devnagri字符的ASCII編碼將對象轉換為字節字符串。 此轉換導致異常。

您需要先將unicode字符串手動轉換回字節字符串,然后再將其寫入文件:

fileid.write(text.encode('utf-8'))

在這里,我假設您要使用UTF-8編碼。 如果要將字符保存為其他編碼,請用該編碼的名稱替換'utf-8'

在Python 3中,您可以在打開文件時設置使用的編碼:

fileid = open('compare.txt', 'a', encoding='utf-8')

然后,不需要額外的.encode('utf-8')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM