我正在尝试调用由lims系统提供的rest webservice(基本上是化学实验室数据库+接口)。一切都很顺利,直到出现一些> ascii字符(特别是带有抑扬符号、umlauts等字符)。
当传递值àèïõû调用webservice时,我得到了以下参数:
&componentValue=àèïõû
使用HttpWebRequest发送请求时,如果没有进行任何预转义操作,或者对值调用了Uri.EscapeDataString()方法,则会得到以下结果:
à èïõû
使用相同的网站,Firefox 浏览器可以正确显示值,而使用 HttpWebRequest 则无法正确显示:
àèïõû
现在来讲转义本身:
Uri.EscapeDataString()似乎会将"àèïõû" 转义为:
%C3%A0%C3%A8%C3%AF%C3%B5%C3%BB
Firefox将 "àèïõû" 转义为:
%E0%E8%EF%F5%FB
作为后者的工作,我当然更喜欢使用它作为我的转义方法,但是我真的不知道从哪里开始。我找到了很多关于处理响应数据上的编码不同方法的信息,但并没有关于请求的。