Domanda

Diciamo che hai un sistema in cui un valore chiave abbastanza lungo può essere comunicato accuratamente a un utente sullo schermo, via e-mail o tramite carta; Ma l'utente deve essere in grado di comunicare con accuratamente la chiave leggermente leggendola al telefono, o leggendola e digitandola in qualche altra interfaccia.

Cos'è un modo "buono" per codificare la chiave per rendere la lettura / udito / digitandola facile e accurata?

Potrebbe essere un numero di fattura, un documento ID, un ID di transazione o un altro valore astratto. Diciamo per il bene di questa discussione il valore della chiave sottostante è un grande numero, diciamo 40 cifre in base 10.

Alcuni pensieri:

Keys più brevi sono generalmente migliori

    .
  • Una base di 40 cifre 10 il valore potrebbe non adattarsi allo spazio dato, ed è facile da perdere nel mezzo di
  • Lo stesso valore potrebbe essere rappresentato in base 16 in 33-34 cifre
  • Lo stesso valore potrebbe essere rappresentato in base 36 in 26 cifre
  • Lo stesso valore potrebbe essere rappresentato in base 64 in 22-23 cifre

    Caratteri che non possono essere confusi visivamente con l'altro sono meglio

      .
    • ad esempio. Una codifica che include sia o (oh) che 0 (zero), o s (ESS) e 5 (cinque), potrebbe essere cattiva
    • Questo problema dipende dal carattere / faccia utilizzato per visualizzare il tasto, che potresti essere in grado di controllare in alcuni casi (come la stampa su carta) ma non può controllare in altri (come pagine Web e e-mail). .
    • dipende anche dal fatto che sia possibile controllare l'uso esclusivo del caso superiore e / o inferiore - E.G. capitale d (dee) può sembrare o (oh) ma la minuscola D (dee) non lo farebbe; Mentre le minuscole L (Ell) sembra un 1 (uno) mentre il capitale L (Ell) non lo farebbe. (Con eccezioni per font / volti particolarmente esotici).

      Caratteri che non possono essere verbalmente / Auricamente confusi con l'altro sono meglio

        .
      • a (Ay) 8 (otto)
      • b (bee) c (cee) d (dee) e (ee) g (gee) p (pee) t (tee) v (vee) z (zee) 3 (tre)
      • Questo problema dipende dalla qualità audio del canale end-to-end - Bigger Challenge se la base di utenti previste potrebbe avere un impedimento vocale, o potrebbe dover parlare attraverso una maschera antigas o il canale di comunicazione potrebbe includere CB Sistemi telefonici VoIP di radio o choppy.

        Aggiunta di una cifra di controllo o due rilevare gli errori ma non aiuta a risolvere gli errori.

        An Alpha - Bravo - Charlie - Dialog tipo delta può aiutare con gli errori dell'udito, ma non leggere errori.

        possibili scelte di codifica:

          .
        • Base 64 - Compatto, ma troppi caratteri hard-to-verbalizzabili (sottolineatura, trattino ecc.)
        • Base 34 - 0-9 e A-Z ma con o (oh) e io (aye) lasciato fuori come il più facile da confondere con le cifre
        • Base 32 - come base 34 ma lasciare lo 0 (zero) e 1 (uno) pure

          C'è una codifica generalmente riconosciuta che è una soluzione ragionevole per questo scenario?

È stato utile?

Soluzione

Quando l'ho sentito per primo, mi è piaciuto l'articolo una proposta per i proquisiti: identificatori che sono leggibili, faillonabili e pronunciabili.Codifica i dati come una sequenza di consonanti e vocali.È legato alla lingua inglese però.(Perché in tedesco, f e v sono uguali, quindi non dovrebbero essere usati entrambi.) Ma mi piace l'idea generale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top