1

Linux に unicode/UTF8 を処理しないコンソール アプリケーションがありますが、この問題以外には必要がないため、それを実装する予定はありません。

ユーザーがASCII文字を含まないコマンドをプロンプトに入力しているため、データに関する不可解な問題が発生し、ASCII文字のみを含むテキスト構成ファイルにも問題が発生しています。

この問題に対処する最善の方法は何ですか? ユニコード文字列をアスキーに戻す、またはアスキー文字セットの可視部分を使用して印刷できない文字を削除する、それほど複雑ではない方法はありますか?

Unicode は、私にとっても完全な悪夢のように思えます。

4

2 に答える 2

3

UTF-8 および多くのシングルバイト文字セットは ASCII 互換であり、0 ~ 127 の値が適切な ASCII 文字を表します。(UTF-8 の場合、マルチバイト シーケンスを持つ文字の各バイトはこの範囲外です。)残りを除外すると、問題が解決します。

ただし、態度を確実に変えて、UTF-8 をサポートする必要があります。

于 2013-01-15T21:01:17.030 に答える
0

ASCII が必要な場合は、無効な入力として 0 ~ 127 以外の char 値をテストして拒否します。このような場合、私は伝統的な堅牢性の原則を支持しません。コードはすぐに失敗するはずです。あいまいなデータを操作しようとすると、奇妙な動作が発生します。

もちろん、多くはドメインに依存しますが、これが私のデフォルトのアプローチです。最初に厳密にして後で条件を緩和する方が、緩くして後で制限を適用して以前に機能していたコード/構成を壊すよりも簡単です。

于 2013-01-15T21:43:01.833 に答える