文本文件中的非英语字母数字

时间:2010-06-05 00:59:39

标签: winforms non-ascii-characters non-english

C#WinForm应用程序

编辑:似乎对外语兼容性感到担忧 这不是问题。 我正在制作这个实用程序的纸牌游戏主要是英文版。在将来,我可能会支持其他语言,但所有内容仍将使用英文名称,在程序和游戏规则中都是主键。 我可以简单地添加带有英文名称的附加表,然后是翻译后的文本,一切都应该没问题。

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

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

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

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

2)识别字母令人沮丧,但如果找不到匹配,我只会到达替换逻辑。 当非英语字符导致不匹配,或者它尚未出现在列表中时,会发生这种情况 我并不太担心每个不匹配字符串的char-by-char检查效率低下,因为这是每三个月触发一次的手动更新过程。 据推测,单个角色的Bianary代码级别应该可以工作,但我还没有这个工作。

3)经常使用上述[AE]字符,至少允许在程序中使用此字符会很好,因为我不打算像其他人那样替换它。 我已经将[AE]字符加载到我的数据库中没有任何问题,使用“Ae”,“AE”和“[AE]”搜索在SQL级别没有问题,所以我对这个功能很好。
只是搜索其他非英语字符不太直观。

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

1 个答案:

答案 0 :(得分:0)

你确定这些名字不一定是不同的吗?你确定你想要所有的“è”,“é”,“ê”和“ë”意思相同吗?

特别是在“外国”名称中,具有不同变音符号的字符可能意图不同。毕竟,对于那些名字的人来说,这些人物并不是外国人。