C# 解决httplistener querystring 中文乱码返回json中文格式乱码

Posted 遗失的美好灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 解决httplistener querystring 中文乱码返回json中文格式乱码相关的知识,希望对你有一定的参考价值。

解决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();
        }
    }

转载于:链接

以上是关于C# 解决httplistener querystring 中文乱码返回json中文格式乱码的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# HttpListener 处理多个请求

使用 C# HttpListener 提供大文件

使用 C# HttpListener 时无法设置 MIME 类型

SSL 上的 C# HttpListener 完全失败

如何在 C# 中的随机端口上创建 HttpListener 类?

C# HttpListener 和 Windows 防火墙