Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF Unicode编码的UrlEncoded无法很好地实现_Wcf_Unicode_Rest_Get_Urldecode - Fatal编程技术网

WCF Unicode编码的UrlEncoded无法很好地实现

WCF Unicode编码的UrlEncoded无法很好地实现,wcf,unicode,rest,get,urldecode,Wcf,Unicode,Rest,Get,Urldecode,我有一个RESTful WCF服务,它接受带有Unicode编码URL的GET谓词。奇怪的是,当我在服务器上获取数据时,Unicode字符被翻译成小方框 为了将Unicode URL编码转换成漂亮的字符串,我是否必须告诉服务合同要做什么 这是我的合同: [OperationContract] [WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/Document/{Fragment}", RequestFormat =

我有一个RESTful WCF服务,它接受带有Unicode编码URL的GET谓词。奇怪的是,当我在服务器上获取数据时,Unicode字符被翻译成小方框

为了将Unicode URL编码转换成漂亮的字符串,我是否必须告诉服务合同要做什么

这是我的合同:

[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "/Document/{Fragment}", RequestFormat = WebMessageFormat.Xml)]
Message GetDocumentFromSearchResult(string Fragment);
下面是我传入的unicode示例: %FF%FE%22%00O%FF%FE%20%00King%FF%FE%20%00of%FF

我得到了“国王”和“of”,好的,但剩下的都是小正方形


一定是解码问题???

使用片段[i]检查字符,看看实际字符是什么。这将删除调试器或其他输出方法可能向您显示的变量。

您传入的内容看起来很奇怪:它似乎包含UTF-16,用于带有字节顺序标记的“字符。这几乎肯定是一个问题,因此看起来更像是输入编码的问题

通常,UTF-8用于URL,因为它更适合协议(无需在纯ASCII中转义所有NUL字节)。这可能是您的服务所期望的,因此无法正确解码(因为%FF%FE不是有效的UTF-8)