誤読/ミスピー/ミスパークを最小限に抑えるエンコーディング?
-
10-12-2019 - |
質問
あなたはあなたがかなり長いキー値を自分の画面上または紙を介して正確に連携することができるシステムを持っているとしましょう。しかし、ユーザーは電話で読むことによって、またはそれを読んで他のインターフェースに入力することによって、キーを正確に連絡することができる必要があります。
鍵を符号化するための「良い」方法は何ですか?
これは請求書番号、文書ID、トランザクションID、またはその他の抽象値です。この議論のために、基礎となる鍵の価値は大きな数であり、Base 10の40桁の桁数です。
いくつかの考え:
短いキーは一般的に良い
- 40桁のベース10の値は、与えられた空間には合わない場合があり、の途中で紛失しやすい
- 同じ値は33~34桁の33~34桁の基本16に表すことができます。
- 同じ値は26桁の26桁目に基本36に表すことができます。
- 同じ値は22~23桁ので基本64で表すことができます。
お互いに視覚的に混同できない文字はより良いです
- e.g。 O(OH)と0(ゼロ)、またはS(ESS)と5(5)の両方を含む符号化は、悪いになる可能性があります。
- この問題は、キーを表示するために使用されるフォント/顔によって異なります。李>
- はまた、上限ケースおよび/または小文字の排他的使用を制御できるかどうかによって異なります。 Capital D(DEE)はO(OH)のように見えますが、小文字のD(DEE)はそうではありません。小文字のL(ELL)は1(1)のように見えますが、Capital L(ELL)はそうではありません。 (特にエキゾチックなフォント/顔の例外を持ちます)
口頭で/互いに混同することができない文字は
- A(AY)8(8)
- B(BEE)C(CEE)D(DEE)E(EE)G(GEE)P(PEE)T(TEE)V(VEE)Z(ZEE)3(3)
- この問題は、予想されるユーザベースが音声障害を持たせることができるか、またはガスマスクを通過しなければならない場合、または通信チャネルを含む可能性がある場合、または通信チャネルが含まれる可能性がある場合、エンドツーエンドチャネルの音声品質によって異なります。ラジオまたは途切れのVoIP電話システム。
チェックディジットの追加または2つはエラーを検出しますが、エラーを解決するのに役立ちません。
Alpha - Bravo - Charlie - Delta型ダイアログは、エラーの聴覚のために役立ちますが、エラーを読み取ることはできません。
エンコーディングの可能な選択:
- ベース64 - コンパクトですが、言葉が多すぎる文字(アンダースコア、ダッシュなど)
- ベース34 - 0-9とa-zがo(oh)とi(aye)が除外された桁と混同することが最も簡単なものとして出発しました
- ベース32 - ベース34と同じですが、0(ゼロ)と1(1)も
このシナリオのための合理的な解決策である一般的に認識されたエンコーディングはありますか?
解決
最初に聞いたとき、私は記事プロのプロポーザルのプロポーザル:読みやすく、綴られ、そして発音。それは子音と母音のシーケンスとしてデータをエンコードします。それは英語に縛られています。(ドイツ語、f
、v
Soundが等しいので、それらは両方で使用しないでください。)しかし、私は一般的なアイデアが好きです。
所属していません StackOverflow