首页 > 解决方案 > 我如何解码阿拉伯语和乌尔都语字符python

问题描述

我正在尝试将 base64 中的字符串转换为实际可读的字符,但某些文本包含乌尔都语和阿拉伯语中的字符,例如:

\\xd8\\xb9\\xdb\\x81\\xd8\\xaf\\xd9\\x90 \\xd9\\x86\\xd9\\x88\r\n\\xd8\\xa2\\xd9\\x8f\\xd8\\xb1\\xd8\\xaf\\xd9\\x88 \\xd8\\xaa\\xd8\\xaf\\xd8\\xb1\\xdb\\x8c\\xd8\\xb3 \\xd9\\x85\\xdb\\x8c\\xda\\xba \\xd8\\xa8\\xdb\\x81\\xd8\\xaa\\xd8\\xb1\\xdb\\x8c \\xda\\xa9\\xdb\\x92 \\xd9\\x84\\xdb\\x8c\\xdb\\x92 \\xd8\\xa7\\xdb\\x81\\xd8\\xaf\\xd8\\xa7\\xd9\\x81

当我删除多余的反斜杠并将其放入终端时,我得到

عÛدÙÙØ¢Ùرد٠تدرÛس Ù
ÛÚº بÛØªØ±Û Ú©Û Ù
                  ÛÛ Ø§ÛداÙ

如何正确转换上述字符串?

编辑:

我使用 gmail API 从一封电子邮件中得到了这个字符串。这是电子邮件的字符串:

DQpIaSBNT0hBTU1BRCwNCllvdXIgd29yayDYuduB2K_ZkCDZhtmIICANCjxodHRwczovL2NsYXNzcm9vbS5nb29nbGUuY29tL2MvTWpJek5UVXhNekl5T1RFMS9hL01qTTBPRE14TURrNE9EUXcvc3VibWlzc2lvbnM-ICANCmlzIGR1ZSB0b21vcnJvdy4gV291bGQgeW91IGxpa2UgdG8gdHVybiBpdCBpbj8NCg0K2Lnbgdiv2ZAg2YbZiA0KRHVlOiBKYW4gMjQNCk9QRU4gIA0KPGh0dHBzOi8vY2xhc3Nyb29tLmdvb2dsZS5jb20vYy9Nakl6TlRVeE16SXlPVEUxL2EvTWpNME9ETXhNRGs0T0RRdy9zdWJtaXNzaW9ucz4NCklmIHlvdSBkb24ndCB3YW50IHRvIHJlY2VpdmUgZW1haWxzIGZyb20gQ2xhc3Nyb29tLCB5b3UgY2FuIHVuc3Vic2NyaWJlICANCjxodHRwczovL2NsYXNzcm9vbS5nb29nbGUuY29tL3M-Lg0KDQpHb29nbGUgTExDDQoxNjAwIEFtcGhpdGhlYXRyZSBQa3d5DQpNb3VudGFpbiBWaWV3LCBDQSA5NDA0MyBVU0ENCg==

要对其进行解码,您可以通过 base64.urlsafe_b64decode 运行它。在这个字符串中,会有像上面列出的那些 unicode 字符。我如何将它们解码为乌尔都语和阿拉伯语字符?

标签: pythonunicodepython-unicode

解决方案


如何正确转换上述字符串?

text = '\\xd8\\xb9\\xdb\\x81\\xd8\\xaf\\xd9\\x90 \\xd9\\x86\\xd9\\x88\r\n\\xd8\\xa2\\xd9\\x8f\\xd8\\xb1\\xd8\\xaf\\xd9\\x88 \\xd8\\xaa\\xd8\\xaf\\xd8\\xb1\\xdb\\x8c\\xd8\\xb3 \\xd9\\x85\\xdb\\x8c\\xda\\xba \\xd8\\xa8\\xdb\\x81\\xd8\\xaa\\xd8\\xb1\\xdb\\x8c \\xda\\xa9\\xdb\\x92 \\xd9\\x84\\xdb\\x8c\\xdb\\x92 \\xd8\\xa7\\xdb\\x81\\xd8\\xaf\\xd8\\xa7\\xd9\\x81'

以下encode/decode进展可能会有所帮助:

text.encode().decode('unicode-escape').encode('latin1').decode('utf-8')

'عہدِ نو\r\nآُردو تدریس میں بہتری کے لیے اہداف'

更新 我使用 gmail API 从电子邮件中获得了这个字符串

textb64 = 'DQpIaSBNT0hBTU1BRCwNCllvdXIgd29yayDYuduB2K_ZkCDZhtmIICANCjxodHRwczovL2NsYXNzcm9vbS5nb29nbGUuY29tL2MvTWpJek5UVXhNekl5T1RFMS9hL01qTTBPRE14TURrNE9EUXcvc3VibWlzc2lvbnM-ICANCmlzIGR1ZSB0b21vcnJvdy4gV291bGQgeW91IGxpa2UgdG8gdHVybiBpdCBpbj8NCg0K2Lnbgdiv2ZAg2YbZiA0KRHVlOiBKYW4gMjQNCk9QRU4gIA0KPGh0dHBzOi8vY2xhc3Nyb29tLmdvb2dsZS5jb20vYy9Nakl6TlRVeE16SXlPVEUxL2EvTWpNME9ETXhNRGs0T0RRdy9zdWJtaXNzaW9ucz4NCklmIHlvdSBkb24ndCB3YW50IHRvIHJlY2VpdmUgZW1haWxzIGZyb20gQ2xhc3Nyb29tLCB5b3UgY2FuIHVuc3Vic2NyaWJlICANCjxodHRwczovL2NsYXNzcm9vbS5nb29nbGUuY29tL3M-Lg0KDQpHb29nbGUgTExDDQoxNjAwIEFtcGhpdGhlYXRyZSBQa3d5DQpNb3VudGFpbiBWaWV3LCBDQSA5NDA0MyBVU0ENCg=='
import base64
print(base64.urlsafe_b64decode(textb64).decode('utf-8'))

嗨,MOHAMMAD,你的工作 عہدِ نو https://classroom.google.com/c/MjIzNTUxMzIyOTE1/a/MjM0ODMxMDk4ODQw/submissions 将于明天到期。你想把它上交吗?
عہدِ نو 截止日期:1 月 24 日开放 https://classroom.google.com/c/MjIzNTUxMzIyOTE1/a/MjM0ODMxMDk4ODQw/submissions 如果您不想收到来自“课堂”的电子邮件,可以取消订阅https://classroom.google.com /秒

Google LLC 1600 Amphitheatre Pkwy Mountain View, CA 94043 USA


推荐阅读