使用双引号时,url解码器背后的逻辑是什么?

Les*_*nes 5 .net c# asp.net

为什么url解码在解码%22时没有出错.这是双引号.当程序员在字符串中输入双引号时,它们必须使用两个双引号""来表示双引号.

例如

string myString = "It\"s nice to meet you";
console.write(myString);
Run Code Online (Sandbox Code Playgroud)

产量

很高兴认识你

但是当url解码双引号时为什么它不会破坏.字符串通过url解码器后,只有一个引号".为什么这不会破坏代码?

例如

 string myString = "It%22s nice to meet you";
 myString = HttpUtility.UrlDecode(myString);
 console.Write(myString);
Run Code Online (Sandbox Code Playgroud)

产量

很高兴认识你

usr*_*usr 4

需要转义双引号只是 C# 中文字字符串的一个问题。语言就是这样定义的。非文字不受影响:((char)35).ToString() == "\""是的。

这对实际运行时间值没有影响。"\"".Length是 1。CLR 不知道转义。

CLR 能够托管多种编程语言。它不关心单一语言的转义规则。

库函数甚至无法告诉您如何编写或计算字符串。即使他们愿意。