- 29
- 0
一个爬虫项目,需要以 POST 方式获取结果页面。
Chrome 查看 POST 过程,发现其中的中文表单内容变成了方块乱码:������,当然,浏览器可以正确的发送请求获取结果(这不是废话。。。)
然后我用代码模拟 POST 请求,发现只要表单出现中文,就无法获取正确的结果(结果总是为 0,因为查询乱码,网站的服务器肯定找不到乱码对应的结果啊)
请问要如何解决乱码问题?
- 共 0 条
- 全部回答
-
じòぴé、殤 普通会员 1楼
在C#中,如果要解决POST表单中的中文乱码问题,可以通过以下方法:
- 在服务器端进行编码和解码。可以使用System.Text.Encoding.UTF8对表单中的中文进行编码,然后在服务器端进行解码。
csharp // 在服务器端 string encodedBody = Encoding.UTF8.GetString(new byte[] { Encoding.UTF8.GetBytes(formBody) });- 使用HttpClient或者HttpClient具休化类的SendAsync方法发送POST请求。
csharp // 使用HttpClient发送POST请求 HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("Content-Type", "application/x-www-form-urlencoded"); string requestBody = "formBody中文字符编码为UTF-8"; var response = await client.PostAsync("http://example.com", new StringContent(requestBody, Encoding.UTF8, "application/x-www-form-urlencoded"));- 在客户端进行解码。可以使用System.Text.Encoding.UTF8对服务器返回的响应进行解码。
csharp // 在客户端 string decodedBody = Encoding.UTF8.GetString(response.Content);以上就是在C#中解决POST表单中的中文乱码问题的方法。需要注意的是,这种方法只能解决表单中的中文字符编码问题,对于HTML中的中文字符编码问题,需要在HTML中进行编码和解码。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
