Mas*_*Net 5 c# encoding utf-8 character-encoding utf8-decode
这是一个黑暗中的镜头,如果这个问题听起来像一个疯子的谣言,我会提前道歉.
作为与第三方集成的一部分,我需要使用C#对一些字符串信息进行UTF8编码,以便我可以通过多部分表单将其发送到目标服务器.问题是他们拒绝了我的一些提交,可能是因为我没有正确编码他们的内容.
现在,我正在试图找出一个短划线或连字符 - 我不知道它只是通过观察它是什么 - 被目标服务器接收或解释为?~@~S(是的,这是一个5个字符的字符串并不是你的浏览器出现故障).不幸的是,我没有足够的理解Encoding.UTF8.GetBytes()知道如何使用字节数组来开始识别问题所在.
如果有人可以提供任何提示或建议,我将不胜感激.到目前为止,我唯一的朋友是MSDN,并没有那么多.
更新1:经过一些挖掘后,我发现使用System.Web.HttpUtility.UrlEncode()编码EM DASH字符(" - ")会将其十六进制编码为"%e2%80%94".
我目前正在HttpWebRequest帖子中发送此信息,内容类型为"application/x-www-form-urlencoded" - 这可能导致问题吗?如果是这样,编码一系列名称 - 值对的正确方法是什么,这些名称 - 值对的值可能包含Unicode字符,以便服务器能够理解它需要UTF-8请求?
byte[] test = System.Text.Encoding.UTF8.GetBytes("-");
Run Code Online (Sandbox Code Playgroud)
应该给你
test[0] = 0x2D (45 as integer).
Run Code Online (Sandbox Code Playgroud)
验证您是否将 0x2D 发送到目标服务器。