يمكن تحويل الحروف إلى أرقام في Python باستخدام ord التي تعيد قيمة Unicode للحرف، ثم إعادتها باستخدام chr. هذا ترميز تعليمي قابل للعكس، وليس تشفيرًا يحمي الرسائل أو بديلًا عن أدوات التشفير. استخدام فاصل بين الأرقام يمنع ضياع حدود كل قيمة عند إعادة التحويل.
الكود الكامل باستخدام Python 3
def encode_text(text):
return " ".join(str(ord(char)) for char in text)
def decode_text(encoded):
return "".join(chr(int(value)) for value in encoded.split())
if __name__ == "__main__":
text = input("Text: ")
encoded = encode_text(text)
print("Unicode:", encoded)
print("Restored:", decode_text(encoded))كيف تعمل ord وchr؟
تستقبل ord حرفًا واحدًا وتعيد عددًا صحيحًا، وتستقبل chr قيمة عددية صحيحة ضمن مجال Unicode وتعيد الحرف المقابل. نمر على النص كاملًا حتى لا يقتصر المثال على حروف اسم واحد. الحرف A مثلًا قيمته 65 والحرف a قيمته 97؛ حالة الحروف تغير القيمة.
العربية والمسافات
يعمل المثال مع نص عربي وإنجليزي ومع المسافات وعلامات الترقيم. المسافة نفسها حرف له قيمة، ولذلك لا نحذفها أثناء الترميز. تستخدم split في فك الترميز فواصل الأرقام فقط، بينما تبقى المسافات الأصلية ممثلة بقيمتها العددية. النص الفارغ يتحول إلى نص فارغ ثم يعود كما هو.
التحقق من الإدخال وحدود المثال
النص العددي التالف قد يسبب ValueError عند فك الترميز؛ أضف معالجة للاستثناء إذا كنت تستقبل أرقامًا من المستخدم بدل الناتج الذي أنشأه البرنامج. لا تجمع القيم دون فاصل، لأن السلسلة 6566 قد تعني أكثر من تقسيم. التحويل إلى Unicode لا يخفي محتوى الرسالة؛ أي شخص يعرف القاعدة يستطيع استرجاعها.






