ترميز سلسلة Python encode() decode()

تشفير سلسلة Python encode()

تستخدم وظيفة تشفير السلسلة في Python لتشفير السلسلة باستخدام الترميز المقدم. تُرجع هذه الوظيفة كائن بايت. إذا لم نقدم ترميزًا، يُستخدم الترميز “utf-8” كافتراضي.

فك تشفير بايت Python decode()

تُستخدم وظيفة فك تشفير البايت في Python لتحويل البايت إلى كائن سلسلة. تسمح لنا هاتان الوظيفتان بتحديد خطة معالجة الأخطاء التي ستستخدم لأخطاء الترميز/فك الترميز. القيمة الافتراضية هي ‘strict’، مما يعني أن أخطاء الترميز تثير استثناء UnicodeEncodeError. بعض القيم الأخرى الممكنة هي ‘ignore’، ‘replace’ و ‘xmlcharrefreplace’. دعونا نلقي نظرة على مثال بسيط لوظائف تشفير وفك تشفير سلسلة Python.

str_original = 'Hello'

bytes_encoded = str_original.encode(encoding='utf-8')
print(type(bytes_encoded))

str_decoded = bytes_encoded.decode()
print(type(str_decoded))

print('Encoded bytes =', bytes_encoded)
print('Decoded String =', str_decoded)
print('str_original equals str_decoded =', str_original == str_decoded)

الناتج:

<class 'bytes'>
<class 'str'>
Encoded bytes = b'Hello'
Decoded String = Hello
str_original equals str_decoded = True

لا يوضح المثال أعلاه استخدام الترميز بوضوح. دعونا نلقي نظرة على مثال آخر حيث سنحصل على إدخالات من المستخدم ثم نقوم بتشفيرها. سنكون لدينا بعض الرموز الخاصة في سلسلة الإدخال التي أدخلها المستخدم.

str_original = input('Please enter string data:\n')

bytes_encoded = str_original.encode()

str_decoded = bytes_encoded.decode()

print('Encoded bytes =', bytes_encoded)
print('Decoded String =', str_decoded)
print('str_original equals str_decoded =', str_original == str_decoded)

الناتج:

Please enter string data:
aåb∫cçd∂e´´´ƒg©1¡
Encoded bytes = b'a\xc3\xa5b\xe2\x88\xabc\xc3\xa7d\xe2\x88\x82e\xc2\xb4\xc2\xb4\xc2\xb4\xc6\x92g\xc2\xa91\xc2\xa1'
Decoded String = aåb∫cçd∂e´´´ƒg©1¡
str_original equals str_decoded = True

يمكنك فحص النص البرمجي الكامل لـ Python والمزيد من أمثلة Python من مستودعنا في مستودع GitHub.

المرجع: وثائق واجهة برمجة التطبيقات لـ str.encode()، وثائق واجهة برمجة التطبيقات لـ bytes.decode()

Source:
https://www.digitalocean.com/community/tutorials/python-string-encode-decode