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

.NET
447
0
0
2022-04-10
标签   C#

解决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();}}
转载于:链接