[英]How to return string with accent from controller to View via Ajax JSon
我的问题是从控制器返回并通过JsonResult查看的单词丢失了重音,而不是重音被转换为符号。
这个单词“Finalizar_Saída”被错误地表示为“Finalizar_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);
有人知道解决这个问题的方法吗?
这是一种方法,不一定是一种好方法:
您可以使用找到的HTML编码存储带有所需字符的字符串
这些名称可能在代码/数据库中将不再可读,但应在浏览器中正确显示。 可以想象,您可以使用支持UTF的语言来解析字符串,并将其本机编码/解码功能与正则表达式结合使用,以HTML代码替换unicode字符,甚至可以在发送给客户端AJAX请求之前即时完成。
抱歉,问题不是呈现文本的方式,而是我阅读信息的方式。
我正在从文件中读取信息,在我们的例子中,该文件是log4net生成的文件。
问题是log4net是以ansi标准编写的,而我们认为它是utf8标准,
解决方案是使用以下调用将读取模式更改为ansi标准:
Encoding.Default.GetString(buffer).
现在可以了。
还是谢谢你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.