【问题标题】:Can't see Turkish characters on Post Request在发布请求中看不到土耳其语字符
【发布时间】:2020-10-18 11:38:42
【问题描述】:

您好,我只是 Web Scraping 的初学者,我正在尝试抓取具有 Post Request Method 的网站。当我抓取网站时,我看到的是“�”而不是土耳其语字符,我不知道如何修复它:/

var client = new HttpClient();
var values = new Dictionary<string, string>
{
    { "city_id", "01"    },
    { "district_id", "000" },
    {"post","1"    }
};

var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("url-address", content);
string responseString = await response.Content.ReadAsStringAsync();

【问题讨论】:

  • 在此处查看接受的答案:stackoverflow.com/questions/22649473/… 有帮助吗?
  • 只是为了缓解您的挫败感:字符、编码和区域化处理起来非常糟糕。因为影响字符/文本的元素太多了。主机操作系统、源操作系统、主机或源设置中的编码默认设置、.net 项目的设置……不胜枚举。我最终在 docker linux 容器上运行应用程序,强制在各个方面进行“不变”区域化,但仍然不时遇到这个问题。尝试使用 UTF8 覆盖大部分内容,然后根据具体情况仅覆盖最重要的场景 :-)
  • @LocEngineer 是的,我也检查了那个答案,但它也没有解决我的问题:/
  • 请指定I saw "�" instead of Turkish - 看到如何?您在哪里检查/显示内容?需要更多信息。

标签: c# web-scraping http-post


【解决方案1】:

在@LocEngineer 的评论的帮助下,我刚刚更改了该答案页面的文字并最终解决了我的问题

var buffer = await response.Content.ReadAsByteArrayAsync(); 
            var byteArray = buffer.ToArray(); 
            var responseString = Encoding.Default.GetString(byteArray, 0, byteArray.Length);

【讨论】:

    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多