【发布时间】:2014-09-16 12:11:00
【问题描述】:
我在 c# VSTO 项目中使用正则表达式解析电子邮件。偶尔,正则表达式似乎不起作用(尽管如果我将文本和正则表达式粘贴到 regexbuddy 中,正则表达式会正确匹配文本)。如果我查看 gmail 中的电子邮件,我会看到
=E2=80=8B
在某些行的开头和结尾(我理解的是UTF8零宽度空间);这似乎是弄乱正则表达式的原因。这似乎只是出现的序列。
摆脱这个确切顺序的最简单方法是什么?我做不到明显的
MailItem.Body.Replace("=E2=80=8B", "")
因为这些字符不会出现在 c# 字符串中。
我也试过
byte[] bytes = Encoding.Default.GetBytes(MailItem.TextBody);
string myString = Encoding.UTF8.GetString(bytes);
但是零宽度的空格只是显示为?。我想我可以遍历字节数组并删除包含零宽度空间的字节,但我不知道字节会是什么样子(它似乎不像将 E2 80 8B 转换为十进制并搜索那样简单) .
【问题讨论】:
标签: c# regex utf-8 character-encoding