الترميز الذي يقلل من القراءة الخاطئة / الكتابة الخاطئة / الخطأ في التحدث؟

StackOverflow https://stackoverflow.com//questions/9639236

سؤال

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

ما هي الطريقة "الجيدة" لتشفير المفتاح لجعل القراءة/السمع/الكتابة سهلة ودقيقة؟

يمكن أن يكون هذا رقم فاتورة أو معرف مستند أو معرف معاملة أو أي قيمة مجردة أخرى.لنفترض، من أجل هذه المناقشة، أن القيمة الأساسية الأساسية هي رقم كبير، على سبيل المثال 40 رقمًا في الأساس 10.

بعض الأفكار:

المفاتيح الأقصر أفضل بشكل عام

  • قد لا تتناسب القيمة الأساسية المكونة من 40 رقمًا مع المساحة المحددة، ومن السهل أن تضيع في منتصفها
  • يمكن تمثيل نفس القيمة في الأساس 16 في 33-34 رقمًا
  • يمكن تمثيل نفس القيمة في الأساس 36 في 26 رقمًا
  • يمكن تمثيل نفس القيمة في الأساس 64 في 22-23 رقمًا

الشخصيات التي لا يمكن الخلط بينها بصريًا هي الأفضل

  • على سبيل المثالقد يكون التشفير الذي يتضمن O (oh) و0 (صفر) أو S (ess) و5 (خمسة) سيئًا
  • تعتمد هذه المشكلة على الخط/الوجه المستخدم لعرض المفتاح، والذي قد تتمكن من التحكم فيه في بعض الحالات (مثل الطباعة على الورق) ولكن لا يمكنك التحكم فيه في حالات أخرى (مثل صفحات الويب والبريد الإلكتروني).
  • يعتمد أيضًا على ما إذا كان بإمكانك التحكم في الاستخدام الحصري للأحرف الكبيرة و/أو الصغيرة - على سبيل المثال.قد يبدو الحرف D الكبير (dee) مثل O (oh) لكن الحرف الصغير d (dee) لا يبدو كذلك؛بينما تبدو الأحرف الصغيرة l (ell) وكأنها 1 (واحد) بينما لا تبدو الأحرف الكبيرة L (ell) كذلك.(مع استثناءات الخطوط / الوجوه الغريبة بشكل خاص).

الشخصيات التي لا يمكن الخلط بينها لفظيًا/سمعيًا هي الأفضل

  • أ (آي) 8 (ثمانية)
  • B (نحلة) C (cee) D (dee) E (ee) g (gee) p (pee) t (tee) v (vee) z (zee) 3 (ثلاثة)
  • تعتمد هذه المشكلة على جودة الصوت للقناة الشاملة - وهو التحدي الأكبر إذا كانت قاعدة المستخدمين المتوقعة تعاني من عائق في الكلام، أو قد تضطر إلى التحدث من خلال قناع غاز، أو يمكن أن تشتمل قناة الاتصال على أجهزة راديو CB أو متقطعة أنظمة الهاتف VOIP.

إن إضافة رقم تحقق أو رقمين من شأنه أن يكشف الأخطاء ولكنه لا يساعد في حل الأخطاء.

يمكن أن يساعد مربع الحوار من النوع ألفا - برافو - تشارلي - دلتا في حل أخطاء السمع، ولكن ليس أخطاء القراءة.

الخيارات الممكنة للترميز:

  • القاعدة 64 - مضغوطة، ولكن يوجد عدد كبير جدًا من الأحرف التي يصعب نطقها (الشرطة السفلية والشرطة وما إلى ذلك)
  • القاعدة 34 - 0-9 وA-Z ولكن مع استبعاد O (oh) وI (aye) باعتبارهما الأسهل للخلط بين الأرقام
  • الأساس 32 - نفس الأساس 34 ولكن اترك 0 (صفر) و1 (واحد) أيضًا

هل هناك ترميز معترف به بشكل عام يمثل حلاً معقولاً لهذا السيناريو؟

هل كانت مفيدة؟

المحلول

عندما سمعته لأول مرة، أعجبني المقال اقتراح لبروكينتس:معرفات قابلة للقراءة والتهجئة والنطق.يقوم بترميز البيانات كسلسلة من الحروف الساكنة والمتحركة.على الرغم من أنها مرتبطة باللغة الإنجليزية.(لأنه باللغة الألمانية، f و v يبدو متساويًا، لذلك لا ينبغي استخدامهما معًا.) لكني أحب الفكرة العامة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top