تقنية

fromhex في بايثون: المسافة العادية وغير القابلة للكسر

U+0020 يعطي البايتين 18 و52؛ U+00A0 يؤدي إلى ValueError.
المحرف مختلف.

bytes.fromhex يتجاهل الفراغات البيضاء في ASCII بين أزواج الأرقام؛ هذا لا يشمل كل محرف مسافة. [1]

الخلاصة السريعة

تشابه شكل الفراغ لا يعني قبوله في fromhex. [1] [2]

  • bytes.fromhex يتجاهل الفراغات البيضاء في ASCII بين أزواج الأرقام؛ هذا لا يشمل كل محرف مسافة. [1]
  • U+00A0 هي المسافة غير القابلة للكسر، المعروفة بـNBSP. [2]
  • مثال مؤلف شُغّل على CPython 3.12.14: a="12 34"؛ list(bytes.fromhex(a)) تعطي [18,52]. [1]
  • n="12"+chr(0x00A0)+"34"؛ bytes.fromhex(n) ترفع ValueError عند الموضع 2 بالعد من الصفر. [1] [2]
  • الفراغ في a هو U+0020، وفي n هو U+00A0؛ افحص نقطة الترميز قبل تفسير الفشل. [1] [2]

حد ASCII

bytes.fromhex يتجاهل الفراغات البيضاء في ASCII بين أزواج الأرقام؛ هذا لا يشمل كل محرف مسافة. [1]

مسافة أخرى

U+00A0 هي المسافة غير القابلة للكسر، المعروفة بـNBSP. [2]

النص المقبول

مثال مؤلف شُغّل على CPython 3.12.14: a="12 34"؛ list(bytes.fromhex(a)) تعطي [18,52]. [1]

list(bytes.fromhex(a)) -> [18,52] [1]

الموضع 2 بين 12 و34 يحمل U+0020 في a، وU+00A0 في n.
نقطة الترميز.

فحص المحرف

n="12"+chr(0x00A0)+"34"؛ bytes.fromhex(n) ترفع ValueError عند الموضع 2 بالعد من الصفر. [1] [2]

bytes.fromhex(n) -> ValueError [1] [2]

الفراغ في a هو U+0020، وفي n هو U+00A0؛ افحص نقطة الترميز قبل تفسير الفشل. [1] [2]

المراجع

  1. Python — fromhex
  2. Unicode — U+00A0

للتوسع: ترميز CSV وفاصله.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.