这可能有点靠猜测,如果我的问题听起来像个疯子的胡言乱语,我在此提前道歉。
作为与第三方集成的一部分,我需要使用C#对一些字符串信息进行UTF8编码,以便通过多部分表单将其发送到目标服务器。 问题是,他们拒绝了我的一些提交,可能是因为我没有正确编码其内容。
现在,我正在尝试弄清楚破折号(-)或连字符(-)如何被目标服务器接收或解释为
如果有人能提供任何提示或建议,我将非常感激。 到目前为止,我的唯一朋友是MSDN,但帮助也不大。 更新1:经过更多的挖掘,我发现使用
我目前正在使用
作为与第三方集成的一部分,我需要使用C#对一些字符串信息进行UTF8编码,以便通过多部分表单将其发送到目标服务器。 问题是,他们拒绝了我的一些提交,可能是因为我没有正确编码其内容。
现在,我正在尝试弄清楚破折号(-)或连字符(-)如何被目标服务器接收或解释为
?~@~S
(是的,这是一个由5个字符组成的字符串,不是你的浏览器出错)。 不幸的是,我对Encoding.UTF8.GetBytes()
的理解还不够深入,无法确定如何使用字节数组开始识别问题可能出在哪里。如果有人能提供任何提示或建议,我将非常感激。 到目前为止,我的唯一朋友是MSDN,但帮助也不大。 更新1:经过更多的挖掘,我发现使用
System.Web.HttpUtility.UrlEncode()
对EM DASH字符(“—”)进行编码,将会将其十六进制编码为“%e2%80%94”。我目前正在使用
HttpWebRequest
post发送此信息,并具有“application / x-www-form-urlencoded”类型的内容 - 这可能是问题所在吗? 如果是这样,那么编码一系列名称-值对的正确方法是什么,其中值可能包含Unicode字符,以便被期望UTF-8请求的服务器理解?