C# WinForm 应用程序
编辑: 似乎有人担心外语兼容性。
这是一个非问题。
我制作这个实用程序的纸牌游戏主要是英文的。将来我可能会支持其他语言,但一切仍将关闭英文名称,这是程序和游戏规则的主键。
我可以简单地添加带有英文名称的附加表格,后跟翻译文本,一切都应该没问题。
.
我的程序的一部分从包含名称的文本文件中读取输入,并将其与另一个名称列表进行比较。有时这些名称包含非英语字母,尤其是输入文件中的重音“o”和拉丁语 AE。
当将此文本输入与名称进行比较时,那些非英文字符会导致问题。在大多数情况下,我想找到一种方法将这些字符与英文对应物重叠,例如“[accented o]”->“o”
.
我完全满足于编写一个查找/替换表(我只希望有 12-30 个问题字符),但我遇到了一些障碍。
1)硬编码查找/替换表(在“.cs”文件中)会给我错误,因为编译器不喜欢这些字符。
任何人都知道解决此问题的技巧,还是我只需要创建一个在此过程之前将读取的查找/替换文本文件?
2)识别字母令人沮丧,但如果找不到匹配项,我只会使用替换逻辑。当非英语字符导致不匹配,或者它不在列表中时,就会发生这种情况。
我不太担心对每个不匹配的字符串逐个字符检查效率低下,因为这是每三个月触发一次的手动更新过程。大概下降到单个字符的二进制代码级别应该可以工作,但我还没有让这个工作。
3)前面提到的[AE]字符经常被使用,至少允许在程序中使用这个字符会很好,因为我不打算像其他人那样替换它。我已经毫无问题地将 [AE] 字符加载到我的数据库中,并且使用“Ae”、“AE”和“[AE]”进行的搜索在 SQL 级别没有造成任何问题,所以我对那个功能很好.
只是搜索其他非英文字符不太直观。
.
所以这是我的问题,这实际上比任何严重的事情都更令人讨厌。尽管如此,任何帮助或建议将不胜感激。