gpt4 book ai didi

c# - 将 C# 字符串编码为 Javascript 字符串的注意事项

转载 作者:IT王子 更新时间:2023-10-29 04:53:54 25 4
gpt4 key购买 nike

我正在尝试为我的项目编写自定义 Javascript MVC3 Helper 类,其中一种方法应该将 C# 字符串转义为 Javascript 字符串。

我知道 C# 字符串是 UTF-16 encoded , 和 Javascript 字符串 also seem to be UTF-16 .这里没问题。

我知道一些字符,如反斜杠、单引号或双引号,必须在 Javascript 上进行反斜杠转义,所以:

\ becomes \\
' becomes \'
" becomes \"

在编写我的转换方法之前,是否还有任何其他我必须注意的注意事项?

编辑:到目前为止,答案很好,我从问题的答案中添加了一些引用资料,以帮助将来的其他人。

Alex K. suggested using 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

JP Richardson提供了一个有趣的链接,告知 Javascript 使用 UCS-2,它是 UTF-16 的子集,但如何正确编码是一个全新的问题。

LukeH 在下面的评论中提醒了 CR、LF 和 TAB 字符,这让我想起了控制字符(BEEP、NULL、ACK 等...)。

最佳答案

(.net 4) 你可以;

System.Web.HttpUtility.JavaScriptStringEncode(@"aa\bb ""cc"" dd\tee", true);
==
"aa\\bb \"cc\" dd\\tee"

关于c# - 将 C# 字符串编码为 Javascript 字符串的注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9413421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com