나는 C# REST Webservice를이 다음과 같은 방법을 노출 있습니다유니 코드 문자 요청
[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++로 작성되었으며이 REST Webservice 메소드를 winHTTP 라이브러리를 사용하여 호출하는 클라이언트 코드가 있습니다. 나도 바이올린을 사용하여 이것을 테스트했지만 동일한 결과를 얻습니다. 즉, 중국어 문자가 이상한 문자로 표시됩니다.
요청 본문에 유니 코드 문자가있는 "POST"메서드가있는 경우 내 webservice 메서드는 아무 문제없이 요청 본문을 가져옵니다. 나는 이런 식으로 할 필요조차 없다 : Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(requestBody));
나는 무엇이 여기에 놓치고 있냐? HTTP GET 요청을 보내기 전에 다른 작업을 수행해야합니까?