Mac*_*ado 17 javascript c# encoding serialization
我正在尝试为我的项目编写一个自定义的Javascript MVC3 Helper类,其中一个方法应该将C#字符串转换为Javascript字符串.
我知道C#字符串是UTF-16编码的,Javascript字符串似乎也是UTF-16.这里没问题.
我知道一些字符,如反斜杠,单引号或双引号必须在Javascript上反斜杠转义,所以:
\ becomes \\
' becomes \'
" becomes \"
Run Code Online (Sandbox Code Playgroud)
在编写转换方法之前,还有其他警告我必须注意吗?
编辑:到目前为止很棒的答案,我在问题的答案中添加一些参考资料,以帮助其他人.
Alex K.建议使用System.Web.HttpUtility.JavaScriptStringEncode
,我将其标记为正确的答案,因为我使用.Net 4.但是此功能不适用于以前的.Net版本,所以我在这里添加了一些其他资源:
CR becomes \r // Javascript string cannot be broke into more than 1 line
LF becomes \n // Javascript string cannot be broke into more than 1 line
TAB becomes \t
Control characters must be Hex-Escaped
Run Code Online (Sandbox Code Playgroud)
JP Richardson提供了一个有趣的链接,告知Javascript使用UCS-2,这是UTF-16的一个子集,但如何正确编码这是一个全新的问题.
LukeH在下面的评论中提醒了CR,LF和TAB字符,这让我想起了控制字符(BEEP,NULL,ACK等等).
Ale*_* K. 33
(.net 4)你可以;
System.Web.HttpUtility.JavaScriptStringEncode(@"aa\bb ""cc"" dd\tee", true);
==
"aa\\bb \"cc\" dd\\tee"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14748 次 |
最近记录: |