zoukankan      html  css  js  c++  java
  • 解决MVC 中HttpStatusCodeResult((int)HttpStatusCode.BadRequest, des) 通过StatusDescription 返回中文乱码

    c#中httpstatuscoderesult语法如下:

    public HttpStatusCodeResult(
        HttpStatusCode statusCode,
        string statusDescription
    )

    在Action中通过

    return new HttpStatusCodeResult(HttpStatusCode.BadRequest,"我是中文字符串")

    在前端返回的是乱码。

    原因:

    根据 http 协议,StatusDescription 是写在 http header 中的,默认所有header是用iso-8859-1编码的,但是中文实际是用uft8编码。所以就出现了乱码问题。

    解决:

    使用转码把UTF8编码转为iso-8859-1编码

    附c#转码代码:

             /// <summary>
            /// 转换为ISO_8859_1
            /// </summary>
            /// <param name="srcText"></param>
            /// <returns></returns>
            private string StringToISO_8859_1(string srcText)
            {
                string dst = "";
                char[] src = srcText.ToCharArray();
                for (int i = 0; i < src.Length; i++)
                {
                    string str = @"&#" + (int)src[i] + ";";
                    dst += str;
                }
                return dst;
            }
            /// <summary>
            /// 转换为原始字符串
            /// </summary>
            /// <param name="srcText"></param>
            /// <returns></returns>
            private string ISO_8859_1ToString(string srcText)
            {
                string dst = "";
                string[] src = srcText.Split(';');
                for (int i = 0; i < src.Length; i++)
                {
                    if (src[i].Length > 0)
                    {
                        string str = ((char)int.Parse(src[i].Substring(2))).ToString();
                        dst += str;
                    }
                }
                return dst;
            }

    福建C# .net  技术群

  • 相关阅读:
    OnContextMenu事件
    wireshark教程
    常见的算法题:逆行单一列表
    GPIO
    USB OTG简要
    软测验点---平衡二叉树
    SSL工作原理
    CFileDialog 使用简单介绍
    eclipse在maven项目交付svn忽略简介
    四个漂亮CSS样式表
  • 原文地址:https://www.cnblogs.com/annkiny/p/8397634.html
Copyright © 2011-2022 走看看