解决MVC中HttpStatusCodeResult通过StatusDescription返回中文乱码
程序员文章站
2022-01-21 19:01:50
...
在 .NET MVC中,有时候需要使用httpstatuscoderesult 返回状态描述,那么这个时候就有可能遇到乱码问题,除非你使用英文。其实也挺好解决的,解决MVC 中httpstatuscoderesult 通过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编码。
/// <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; }
若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下,你的鼓励是维持我不断写博客最大动力。
想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。
或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)。
如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。
为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)。
感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。