7

私は現在、特別な ASCII 単位区切り文字 31 (1F) で区切られた値を持つハッシュ キー文字列 (マップから折りたたまれています) を作成しています。

これにより、文字列値で使用されない ASCII 文字を推測しようとする問題がうまく解決され、値のエスケープや引用などについて心配する必要がなくなります。

ただし、これの歴史について読むと、1960 年代の遺物のように見えます。この特殊文字を使用して文字列が構築およびトークン化される例はあまり見られないため、すべてが簡単すぎるようです。

最新のアプリケーションでこの区切り記号を使用することに問題はありますか?

現在、Unicode 以外の C++ アプリケーションでこれを行っていますが、これが Java、C# などの他の言語や Unicode で一般的にどのように適用されるかを知りたいと思っています。

4

2 に答える 2

5

ASCII の下位 128 文字のマップは、文字 0->31 を含む Unicode 標準に完全に固定されています。特殊な ASCII 文字が文字列で頻繁に使用されない唯一の理由は、単純に人間とのインターフェースの制限によるものです。画面に表示したり、ファイルに書き込んだりすると、(たとえあったとしても) うまく視覚化できず、簡単にキーボードから入力することもできます。また、XML などのさまざまな一般的な「人間が読める」ファイル形式内で、エスケープされていない形式で使用することもできません。

ただし、エンドユーザーの操作を必要としないプログラム内の論理処理タスクの場合、それらは、見つけられるあらゆる用途に完全に適しています。あなたの特定の使用法は斬新で効率的に聞こえます。間違いなくそれを実行する必要があると思います。

于 2012-12-30T18:27:02.090 に答える