0

C# WinForm 应用程序

编辑: 似乎有人担心外语兼容性。
这是一个非问题。 我制作这个实用程序的纸牌游戏主要是英文的。将来我可能会支持其他语言,但一切仍将关闭英文名称,这是程序和游戏规则的主键
我可以简单地添加带有英文名称的附加表格,后跟翻译文本,一切都应该没问题。

.

我的程序的一部分从包含名称的文本文件中读取输入,并将其与另一个名称列表进行比较。有时这些名称包含非英语字母,尤其是输入文件中的重音“o”和拉丁语 AE。

当将此文本输入与名称进行比较时,那些非英文字符会导致问题。在大多数情况下,我想找到一种方法将这些字符与英文对应物重叠,例如“[accented o]”->“o”

.

我完全满足于编写一个查找/替换表(我只希望有 12-30 个问题字符),但我遇到了一些障碍。

1)硬编码查找/替换表(在“.cs”文件中)会给我错误,因为编译器不喜欢这些字符。
任何人都知道解决此问题的技巧,还是我只需要创建一个在此过程之前将读取的查找/替换文本文件?

2)识别字母令人沮丧,但如果找不到匹配项,我只会使用替换逻辑。当非英语字符导致不匹配,或者它不在列表中时,就会发生这种情况。
我不太担心对每个不匹配的字符串逐个字符检查效率低下,因为这是每三个月触发一次的手动更新过程。大概下降到单个字符的二进制代码级别应该可以工作,但我还没有让这个工作。

3)前面提到的[AE]字符经常被使用,至少允许在程序中使用这个字符会很好,因为我不打算像其他人那样替换它。我已经毫无问题地将 [AE] 字符加载到我的数据库中,并且使用“Ae”、“AE”和“[AE]”进行的搜索在 SQL 级别没有造成任何问题,所以我对那个功能很好.
只是搜索其他非英文字符不太直观。

.

所以这是我的问题,这实际上比任何严重的事情都更令人讨厌。尽管如此,任何帮助或建议将不胜感激。

4

1 回答 1

0

你确定这些名字没有不同吗?您确定要所有“è”、“é”、“ê”和“ë”都表示相同的意思吗?

尤其是在“外来”名称中,带有不同变音符号的字符可能会有所不同。毕竟,对于那些名字的人来说,这些字符并不陌生。

于 2010-06-05T01:10:28.500 回答