c#与javascript's unescape()的等价是什么?
本文关键字:是什么 unescape javascript | 更新日期: 2023-09-27 18:03:41
我试图分析一些JavaScript
,一行是
var x = unescape("%u4141%u4141 ......");
有大量%uxxxx
形式的字符
我想重写JavaScript
在c#
,但不能找出适当的功能来解码这样的一串字符。我试过了
HttpUtility.HTMLDecode("%u4141%u4141");
,但这并没有改变这些字符。
我如何在c#中完成这个?
您可以使用UrlDecode:
string decoded = HttpUtility.UrlDecode("%u4141%u4141");
decoded
将包含"䅁䅁"
。
正如其他人指出的那样,将%
更改为'
可以工作,但UrlDecode
是首选方法,因为这确保了其他转义符号也被正确翻译。
您需要HttpUtility.UrlDecode
。现在大多数情况下你不应该使用escape/unescape
,你应该使用encodeURI/decodeURI/encodeURIComponent
。
什么时候你应该使用转义而不是encodeURI/encodeuriccomponent ?
这个问题涵盖了为什么escape/unescape
是一个坏主意的问题。
您可以调用bellow方法来实现与Javascript转义/不转义方法相同的效果
Microsoft.JScript.GlobalObject.unescape();
Microsoft.JScript.GlobalObject.escape();
将%符号更改为反斜杠,您将获得c#字符串文字。c#将'uxxxx视为转义序列,其中xxxx为4位数字。
在基本字符串使用中,您可以在Unicode中初始化字符串变量:var someLine = " ' u4141";如果可能-将所有"%u"替换为"'u"。
编辑网页。配置如下参数:
< system.web >
中的< globalization requestEncoding="iso-8859-15" responseEncoding="utf-8" >responseHeaderEncoding="utf-8"