解决httplistener querystring 中文乱码方案:

在请求到达时候,获取Request.Url,返回get请求参数 键值对

public class RequestHelper
{
    public static Dictionary<string, string> EncodeQueryString(Uri uri)
    {
        var ret = new Dictionary<string, string>();
        var q = uri.Query;
        if (q.Length > 0)
        {
            foreach (var p in q.Substring(1).Split('&'))
            {
                var s = p.Split(new char[] { '=' }, 2);
                ret.Add(HttpUtility.UrlDecode(s[0]), HttpUtility.UrlDecode(s[1]));
            }
        }
        return ret;
    }
}

解决返回json中文格式乱码:

对中午json字符串进行编码 HttpUtility.UrlDecode(“中文”);

public class ResponseHelper
  {
      public static void Respose(HttpListenerResponse response, string jsonStr = "")
      {
          byte[] buffer = Encoding.UTF8.GetBytes(jsonStr);
          response.ContentLength64 = buffer.Length;
          response.ContentType = "application/json";
          response.ContentEncoding = Encoding.UTF8;
          response.StatusCode = 200;
          Stream output = response.OutputStream;
          output.Write(buffer, 0, buffer.Length);
          //关闭输出流,释放相应资源
          output.Close();
          response.Close();
      }
  }

转载于:链接