我有一個C#REST web服務暴露下面的方法:Unicode字符請求
[OperationContract]
[WebGet
(
BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "/Files?id={ID}"
)
]
Stream GetFilesForID(string ID);
此方法提取從數據庫中的信息,基於由用戶指定的ID。此ID可以包含中文字符。
我的方法實現:
public Stream GetFilesForID(string ID)
{
ID = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(ID));
// and connect to database and
// stream back the list.
}
「ID」 依然不包含在裏面中國文字。它看起來像:ã³ãã«-太é
我有客戶端代碼,用C++編寫,並使用winHTTP庫調用此REST Webservice方法。我也用小提琴測試了這個,但是我得到了相同的結果,即中文字符顯示爲怪異字符。
如果我有一個「POST」方法,請求正文具有Unicode字符,我的webservice方法獲取請求正文沒有任何問題。我甚至不需要這樣做:Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(requestBody));
我在這裏錯過了什麼?在發送HTTP GET請求之前,我需要做其他事嗎?