在对HttpWebRequest中的字节进行编码之前,是否需要URLENCODE参数?

时间:2016-08-22 16:10:02

标签: c# .net httpwebrequest

我有一个.NET表单应用程序,它与Web服务器上的一些CGI Perl脚本进行通信。

表单应用程序的一个特性是,它发送一个大型文本内容"描述"字段到服务器,用于存储在数据库中。该大字符串值作为请求发送(即text = whatever)。

为此,我们首先要做的是通过System.Web.HttpUtility.UrlEncode在请求上运行整个参数列表。

然后,我们交给构建请求的方法。 ContentType设置为" application / x-www-form-urlencoded; charset = UTF-8"。然后我们在发送之前将参数编码为UTF-8:

byte[] bytes = Encoding.UTF8.GetBytes(parameters);

多年来,这一切都是光荣的。但最近,如果我们能够在该领域发送德语文本,那么我们想知道这些权力。所以,我们已经尝试过了。但它最终会错误地存储在数据库中。当我的应用程序稍后查询它时,我们会看到一些德语特殊字符的乱码。

网络服务器人正在责备我/我的代码。现在,我看一下我们发送的byte []的一个特定数组,将所有小数转换为二进制...然后在unicode表上查找它们。一切都与我的参数字符串相匹配。

但是......进一步看着那张unicode桌子......我看到了一些时髦的角色......而且我认为德国的特殊角色可能就在那里。

所以,我想知道在这种情况下发送到服务器之前我是否真的需要对我的POST数据进行urlencoding?我想我认为在内容类型的服务器端需要urlencoding所有POST数据。

谢谢!

0 个答案:

没有答案