如何通过Ajax JSon将带有重音的字符串从控制器返回到View
本文关键字:字符串 控制器 返回 View Ajax 何通过 JSon | 更新日期: 2023-09-27 18:24:00
我的问题是,从我的控制器返回到通过JsonResult查看的单词正在失去重音,而不是重音,它被转换为符号。
这个单词"Finalizar_Saída"是错误的,以这种方式呈现="Finalizary_Sa�da"。
我的首次回电:
return Json(Object);
我已经尝试过这样的东西:
Add in HTML page:
< META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="@Url.Content("~/path/fileName.js")" type="text/javascript" charset="utf-8"></script>
附加文档javascript:
contentType: "application/json; charset=ISO-8859-1",
dataType: "json",
在web.config中添加此文本:
<globalization culture="pt-BR" uiCulture="pt-BR" requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" fileEncoding="iso-8859-1" />
或
<globalization enableClientBasedCulture="false" requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"
responseHeaderEncoding="utf-8" enableBestFitResponseEncoding="true" culture="es-MX" uiCulture="es-MX"/>
加载项C#:
我把回电改成这样:
Json(Object, "application/json", Encoding.UTF8);
有人知道解决这个问题的方法吗?
这是一种方式,不一定是great的方式:
您可以使用找到的HTML编码来存储具有所需字符的字符串
此处
这些名称在代码/DB中可能不再是人类可读的,但应该在浏览器中正确显示。可以想象,您可以用UTF感知语言解析字符串,并将其本地编码/解码功能与正则表达式相结合,用HTML代码替换unicode字符,这甚至可以在发送到客户端AJAX请求之前即时完成。
对不起,问题不是呈现文本的方式,而是我阅读信息的方式。
我从一个文件中读取信息,在我们的案例中,这个文件是由log4net生成的。
问题是log4net是用ansi标准编写的,我们认为它是utf8标准,
解决方案是使用以下调用将读取模式更改为ansi标准:
Encoding.Default.GetString(buffer).
现在它开始工作了。
不管怎样,谢谢。