0

C# WinForm アプリケーション

編集: 外国語の互換性について懸念があるようです。
これは問題ではありません。 私がこのユーティリティを作成しているカード ゲームは主に英語です。将来、私は他の言語をサポートするかもしれませんが、プログラムとゲームのルールの両方で主要なキーである英語の名前はすべてキーオフされます.
英語の名前とそれに続く翻訳されたテキストを含むテーブルを追加するだけで、すべて問題ありません。

.

私のプログラムの一部は、名前を含むテキスト ファイルから入力を読み取り、それを別の名前のリストと比較します。これらの名前には英語以外の文字が含まれている場合があり、特にアクセント付きの「o」と入力ファイルのラテン語の AE が含まれています。

このテキスト入力を名前と比較すると、英語以外の文字が問題を引き起こしています。ほとんどの場合、"[accented o]" -> "o" のように、これらの文字を英語の対応する文字でオーバーレイする方法を見つけたいと思います。

.

私は検索/置換テーブルをコーディングすることに完全に満足しています (問題の文字は 12 ~ 30 文字しかないと予想しています) が、いくつかの障害があります。

1) 検索/置換テーブル (「.cs」ファイル内) をハードコーディングすると、コンパイラが文字を好まないため、エラーが発生します。
誰かがこれを修正するためのトリックを知っていますか、またはこのプロセスの前に読み取られる検索/置換テキスト ファイルを作成する必要がありますか?

2) 文字を識別するのはイライラしますが、一致が見つからない場合にのみ置換ロジックに到達します。これは、英語以外の文字が原因で不一致が発生した場合、またはリストにまだ含まれていない場合に発生します。
これは 3 か月ごとにトリガーされる手動の更新プロセスであるため、一致しない各文字列の 1 文字ずつのチェックの非効率性についてはあまり心配していません。おそらく、1 文字の Bianary コード レベルまで下げるとうまくいくはずですが、うまくいきませんでした。

3) 前述の [AE] 文字は頻繁に使用されますが、他の文字のように置き換えるつもりはないので、少なくともプログラム内でこの文字を使用できるようにするとよいでしょう。[AE] 文字を問題なくデータベースにロードしました。また、"Ae"、"AE"、および "[AE]" を使用した検索は SQL レベルで問題を引き起こさなかったので、その機能で問題ありません.
他の非英語文字の検索は直感的ではないというだけです.

.

では、私の問題があります。これは、実際には、深刻な問題というより厄介な問題です。それでも、どんな助けやアドバイスも大歓迎です。

4

1 に答える 1

0

Are you sure these names aren't meant to be different? Are you sure that you want all of "è", "é", "ê", and "ë" to mean the same thing?

Especially in "foreign" names, characters with different diacritical marks are likely intended to be different. After all, to the people whose names those are, these characters are not foreign.

于 2010-06-05T01:10:28.500 に答える