【问题标题】:Non-english alpha-numerics in a text file文本文件中的非英语字母数字
【发布时间】:2011-02-28 01:13:45
【问题描述】:

C# WinForm 应用程序

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

.

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

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

.

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

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

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

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

.

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 名字来自纸牌游戏,即使没有重音,名字也总是唯一的。所以不用担心
    • 那为什么名字拼错了?这没有多大意义。也许您只是需要在纸牌游戏中进行更好的数据验证,不要将垃圾输出到您的文件中。
    • 请只关注问题,而不是问题的原因。名字没有拼错,我也不是制作游戏的人;我只是支持它的自制实用程序。 gatherer.wizards.com/Pages/Card/…
    • 我正在制作的数据库中没有理由支持非英文字符。它使搜索变得困难,对字符串解析器做了一些有趣的事情,而且通常很烦人。目前,我有一个错误文件,它可以捕获任何匹配失败。然后我手动更改名称并重新运行错误文件。我只是想自动化这个。
    猜你喜欢
    • 2017-11-21
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多