问题描述
我正在尝试将 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