解决关于 HttpListenerRequest 获取get请求参数中文乱码问题

通过使用HttpListenerRequest 的默认编码 先解码获取的参数值得到byte数组,再使用客户端请求时使用的编码对byte数组编码,得到的就是正确的文字

HttpListenerRequest 的默认编码  中文环境下一般是 gb2312

HttpListenerRequest reqeust;

string fileName = reqeust.QueryString["name"];

if (!string.IsNullOrEmpty(fileName))

{

        fileName = Encoding.GetEncoding("utf-8").GetString(reqeust.ContentEncoding.GetBytes(fileName));

 }

客户端可以通过对url的中文参数设置特定编码 再发送请求

string value = HttpUtility.UrlEncode("你好", Encoding.GetEncoding("utf-8"));

using (HttpClient client = new HttpClient())

{

    var result = client.GetAsync("http://localhost:8080?name=" + value);

}

你可能感兴趣的:(解决关于 HttpListenerRequest 获取get请求参数中文乱码问题)