2009-09-16 53 views
0

我有一個RESTful WCF服務,它接受具有Unicode編碼的URL的GET動詞。當我在服務器上獲取數據時,Unicode字符被奇怪地翻譯成小盒子。WCF Unicode UrlEncoded獲取不過來很好

有什麼我必須告訴服務合同要做,以獲得Unicode UrlEncoded獲取轉換成漂亮的字符串?

這裏是我的合同:

[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

我得到了「國王」和「的」確定,但其餘的都是小正方形。

需要解碼的問題?

回答

1

你所傳遞看起來很奇怪:它似乎包含UTF-16與字節順序標記「人品這幾乎肯定是有問題,所以它看起來更像是你輸入的編碼問題。

通常情況下,UTF-8用於URL,因爲這對於協議來說非常合適(無需在純ASCII中轉義所有的NUL字節),這很可能是您的服務所期望的。它不能正確解碼(因爲%FF%FE不是有效的UTF-8)。

0

使用Fragment [i]檢查字符,看看實際字符是什麼。這將刪除調試器或其他輸出方法可能向您顯示的變量。

相關問題