C# C语言中的Rest服务编码查询字符串
当我在查询字符串中输入一些Unicode UTF-8字符时,它将在我的程序中更改C# C语言中的Rest服务编码查询字符串,c#,rest,C#,Rest,当我在查询字符串中输入一些Unicode UTF-8字符时,它将在我的程序中更改 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)] [AspNetCompatibilityRequirements(RequirementsMode =
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class RestServices : IRESTServices
{
public Stream GetClientNameById(string id, string message)
{
string ReturnString = string.Format("id={0} and message ={1}", id, message);
return GenerateStreamFromString(ReturnString);
}
private Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream, Encoding.GetEncoding("utf-8"));
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
}
如果我在下面输入地址,消息将更改:
http://localhost:8000/DEMOService/subscribe?userID=14953828&message=مرحبا
它将变成Óáã
如何使用utf-8
这是接口:
[ServiceContract(Name = "RESTDemoServices")]
[XmlSerializerFormat]
public interface IRESTServices
{
[OperationContract]
[WebGet(UriTemplate = Routing.GetClientRoute, BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)]
Stream GetClientNameById(string id, string message);
}
以及:
public static class Routing
{
public const string GetClientRoute = "/subscribe?userID={id}&message={message}";
}