我正在尝试在一个使用WebClient和DownloadString下载的字符串中找到“Mauricio”的索引。然而,在网站上它包含一个外国字符“Maurício”。因此,我在其他地方找到了一些代码。
string ToASCII(string s)
{
return String.Join("",
s.Normalize(NormalizationForm.FormD)
.Where(c => char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark));
}
这段代码可以转换外文字符。我已经测试过它并且它可以正常工作。但是,当我下载该字符串时,它会下载为MaurA-cio。我已经尝试了以下两种方法:
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
但是仍然无法阻止它下载为MaurA-cio。
(另外,我不能更改搜索条件,因为我从一个列表中获取搜索词)。
我还能尝试什么?谢谢。
ToASCII
方法对于至少一个字符串(“Mauricio”)是不起作用的。您实际上想要完成什么任务?为什么首先要在代码中引入该方法ToASCII
(因为它实际上并没有将字符串转换为ASCII)?如果您正在尝试将字符串转换为ASCII,则考虑到它无法用ASCII表示,您希望对字符串“Mauricio”做什么? - Peter Duniho