2010-12-19 82 views
0

这是我第一次进入UTF-8领域。我是IIS管理员,所以我从来没有专门去触摸这个。我试图帮助一位将圣经翻译成非洲语言的传教士,现在需要对大型UTF-8文件进行全球匹配。我们特别为重音字符进行匹配。推荐内置WinXP语言支持UTF-8正则表达式

我们在这里使用的是较旧的XP计算机,所以我在VBS中拼凑了一个快速脚本,知道语言已经安装在他们的盒子上了。玩了几分钟后,VBS正则表达式将每个字符分成2个字符,从而处理UTF-8。要匹配单个â,我的模式是\ u00c3 \ u00a2。这不应该是\ u00e2?

由于我不在我的深处,我以为我会寻求一点指导。它几乎看起来像UTF-8只需要这种双重匹配(并且需要UTF-8)。有人可以告诉我在编码哪个峡谷吗? :-)

下载和安装Perl或Java可能不在此项目的带宽和技术知识范围之内。该工具应该内置。MS Office已安装,因此如果某个库提供特定的支持,VBA是一个选项。 JavaScript也被安装,虽然我不知道什么版本。

感谢

+0

你需要做的是加载UTF-8编码的文件。正则表达式引擎不太可能知道任何有关UTF-8的信息。 – Gabe 2010-12-19 04:22:25

+0

我已验证我可以打开,读取和写入文件。完成后Word将它们打开为UTF-8文件,就像原始文件一样。我非常有信心以UTF-8格式处理它们。我正在使用TristateUseDefault。我尝试强制TristateTrue,但这导致了垃圾。 – codepoke 2010-12-19 04:37:40

回答

1

除非你需要匹配两个或多个连续的点(例如,你有..或...在你的正则表达式,但不是。*),你可以使用UTF-8任何ASCII正则表达式库,并期望它能正常工作。

诀窍是知道你在找什么。 UTF-8做这种类型的字节分解,所以编写你的任何你熟悉的正则表达式,并将其转换为UTF-8,它将工作,除非它包含“..”。

+0

诀窍的确如此。在我的任何表达中,我都不会有..所以这是可以管理的。不过,我需要确定我正在搜索的每个双字符组合,对吗?这是可行的,只是具有挑战性。 – codepoke 2010-12-19 13:13:09

+0

如果我在问题中正确理解你的正则表达式是Windows-1252格式。如果是这样,请将它们保存在记事本中,选择格式UTF-8,然后在旧的愚蠢文本编辑器(例如NT4的记事本)中打开它们并提取字节。 – Joshua 2010-12-20 00:53:52

0

PowerShell怎么样?它使用.NET正则表达式库,这是最好的库之一,特别是对于Unicode支持。

+0

很棒的建议。我希望PS安装在这些系统上。 :-( – codepoke 2010-12-19 13:14:19