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>,所以我很好.任何建议都是受欢迎的.
根据你的评论
<script type="text/javascript" charset="utf-8">
/*...*/
var localizedResources = {
FailedUploadErrorMessage: '@Resources.GeneralLocalization.FailedUploadErrorMessage'
/*...*/
Run Code Online (Sandbox Code Playgroud)
你试图使用ASP.NET MVC Razor渲染javaScript.通常剃刀转义特殊字符的实体,像&正在成为&非命名实体,如é正在成为é.在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(有一些警告)
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |