Javascript转换法语特殊字符

Sil*_*eda 5 javascript unicode-string asp.net-mvc-3

在我的MVC 3应用程序中,我有几个带有消息字符串的resx文件,例如:"Editer groupe détails".所有这些都用于窗口标题或确认/警报消息.因此,为了能够在我的各种.js文件中使用它们,我在我的母版页中创建了一个名为localizedRessources的Javascript对象.问题是字符串在此对象中被更改,例如,上面提到的字符串变为"Editer groupe détails".

我有什么选择?是否有一个特殊的函数告诉JS不要编码这些?有没有办法直接使用我的.js文件中的字符串?(顺便说一句,这在某些情况下有效,但我宁愿在我的cshtml文件中没有太多的js代码).

我为所有页面都<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">添加了标签<head>,所以我很好.任何建议都是受欢迎的.

met*_*ngs 5

根据你的评论

<script type="text/javascript" charset="utf-8">
/*...*/
var localizedResources = { 
   FailedUploadErrorMessage: '@Resources.GeneralLocalization.FailedUploadErrorMessage'
/*...*/ 
Run Code Online (Sandbox Code Playgroud)

你试图使用ASP.NET MVC Razor渲染javaScript.通常剃刀转义特殊字符的实体,像&正在成为&amp;非命名实体,如é正在成为&#233;.在javaScript中,您需要UTF-8/16中的本机字符(或者如果真的不可能编码的话\u00E9).

在Razor中,@使渲染引擎在HTML中输出编码的,转义的,实体化的表示.

渲染javaScript时,你不希望Razors隐式转义,所以你需要的是

<script type="text/javascript" charset="utf-8">
/*...*/
var localizedResources = { 
   FailedUploadErrorMessage: '@Html.Raw(Resources.GeneralLocalization.FailedUploadErrorMessage)'
/*...*/
Run Code Online (Sandbox Code Playgroud)

和oops:javaScript也是UTF-16(有一些警告)