C# 如何解决一个陌生字符的问题时,我刮网站在阿拉伯语?

C# 如何解决一个陌生字符的问题时,我刮网站在阿拉伯语?,c#,C#,我想刮这个网站: 但当我这样做的时候,我会看到这样的角色 我试过这些方法,但不适合我: string str = "مكاتب ادارية للإيجار"; var bytes = Encoding.UTF8.GetBytes(str); dataGridView.Rows.Add( Encoding.UTF8.GetString(bytes) ); 您应该尝试使用Unicode进行这种转换 string str = "مكاتب ادارية للإيجار"; var bytes

我想刮这个网站:

但当我这样做的时候,我会看到这样的角色

我试过这些方法,但不适合我:

string str = "مكاتب ادارية للإيجار";

var bytes = Encoding.UTF8.GetBytes(str);

dataGridView.Rows.Add( Encoding.UTF8.GetString(bytes) );

您应该尝试使用Unicode进行这种转换

string str = "مكاتب ادارية للإيجار";

var bytes = Encoding.Unicode.GetBytes(str);

dataGridView.Rows.Add( Encoding.UTF8.GetString(bytes) );

在您的情况下,它更安全,因此您基本上是将UTF-16转换为UTF-8,这可能会导致问题。让我知道这是否适合您。

您看到奇怪字符的原因是编码不同

从MSDN:

编码是转换一组Unicode字符的过程 转换为字节序列


此外,当你在浏览网页时,你可以:

string url = @"https://haraj.com.sa/";
WebClient client = new WebClient { Encoding = Encoding.UTF8 };
string html = client.DownloadString(url);
参考文献:


为什么它不起作用?如果您有例外情况,请提供给我们。