在我的ASP.NET MVC 3项目中,我在主页面中设置了字符编码
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
然后,在我看来,我有
<script type="text/javascript" charset='UTF-8'>
$(function () {
$('#my-btn').click(function () {
$(this).val('@MyProject.Resources.OrderButton');
});
});
</script>
是什么给了我Zamów
的价值而不是Zamów
。资源文件的第一行是:
<?xml version="1.0" encoding="utf-8"?>
任何想法如何解决?
答案 0 :(得分:3)
将服务器端值传递给javascript变量的正确方法如下:
var value = @Html.Raw(Json.Encode(MyProject.Resources.OrderButton);
$(this).val(value);
这将输出完全安全且编码正确的代码,以传递给javascript函数。这也将正确处理您的字符串包含'
,新行等字符的情况,这些字符会破坏您的javascript代码。
你不应该关心某些字符是HTML还是其他编码的字符。重要的是,它们将被正确编码为浏览器或HTML兼容客户端正确使用。