如何解码阿拉伯语和乌尔都语字符 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 字符。我如何将它们解码为乌尔都语和阿拉伯语字符?

解决方法

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

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'))

嗨,穆罕默德,你的作品 عہدِ نو https://classroom.google.com/c/MjIzNTUxMzIyOTE1/a/MjM0ODMxMDk4ODQw/submissions 明天到期。要上交吗?
عہدِ نو 截止日期:1 月 24 日 OPEN https://classroom.google.com/c/MjIzNTUxMzIyOTE1/a/MjM0ODMxMDk4ODQw/submissions 如果您不想接收来自“课堂”的电子邮件,您可以 取消订阅 https://classroom.google.com/s

Google LLC 1600 Amphitheatre Pkwy Mountain View,CA 94043 USA