如何通过Ajax JSon将带有重音的字符串从控制器返回到View

How to return string with accent from controller to View via Ajax JSon

本文关键字:字符串 控制器 返回 View Ajax 何通过 JSon      更新时间:2023-09-26

我的问题是,从我的控制器返回到通过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).

现在它开始工作了。

不管怎样,谢谢。