私が働いている会社には、途方もなく古いデータベース システムと、ASCII 以外の文字に遭遇したときにハード エラーをスローする多くのレガシー アプリがあります。
これらのアプリを廃止する必要があることに気付いたので、vb.net WinForms アプリでバックエンドをラップし始め、これらの古いシステムを 1 年半ラップした後、このバグを発見しました。
彼らは問題を解決するために私を雇った. :(
多くの場合、UI は、DevExpress などのサード パーティのデータ バインディングと FormView 風のソリューションを使用して構築されました。その結果、UI を分解し、次のような中間ユーティリティ関数を使用して再構成するには、多くの作業が必要になります。
TextBox.Text = Sanitize(dataObject.Value);
and
dataObject.Value = Sanitize(TextBox.Text);
アプリケーションの CultureInfo (またはその他のプロパティ) をハックして、すべてのテキスト ボックスがネイティブで ASCII のみを処理できるようにする方法を探しています。これは、多くの Web ブラウザーが示す動作と同様です。
また、メモとして: テキスト入力の多くは dev Express から取得されるため、使用されているテキスト ボックスもラップされます。
Forms の ControlAdded イベントにアタッチして、ASCII または utf-8/utf-7 のみを処理するようにコントロールを設定する方法はありますか?
誰かがこれに遭遇したに違いありません。私が導入できる恐ろしいハックがなければ、これらのアプリをすべて修正するには 2 年かかります。