문제

유니 코드 인코딩 URL이있는 동사를받는 편안한 WCF 서비스가 있습니다. 서버에서 데이터를 얻을 때 유니 코드 문자는 이상하게 작은 상자로 변환됩니다.

Unicode Urlencoded를 얻기 위해 서비스 계약에해야 할 일이 있습니까?

내 계약은 다음과 같습니다.

[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "/Document/{Fragment}", RequestFormat = WebMessageFormat.Xml)]
Message GetDocumentFromSearchResult(string Fragment);

다음은 내가 통과하는 유니 코드의 샘플입니다.

나는 "King"과 "OK의"King "과"OK를 얻지 만 나머지는 줄이 거의 없다.

디코딩 문제가 될까요 ??

도움이 되었습니까?

해결책

당신이 지나가는 것은 이상하게 보입니다 : "캐릭터에 대한 UTF-16을 포함하는 것 같습니다. 바이트 주문 마크. 이것은 거의 확실히 문제이므로 입력 인코딩의 문제처럼 보입니다.

일반적으로 UTF-8은 프로토콜에 훨씬 더 잘 맞기 때문에 UTF-8은 URL에 사용됩니다 (순수한 ASCII에서 모든 NUL 바이트를 탈출 할 필요는 없습니다). 이것은 귀하의 서비스가 기대하는 것일 수 있으므로 올바르게 디코딩되지 않습니다 ( %FF %FE가 유효하지 않기 때문에).

다른 팁

조각 [i]를 사용하여 문자를 검사하여 실제 문자가 무엇인지 확인하십시오. 디버거 또는 기타 출력 방법이 보여줄 수있는 변수가 제거됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top