为什么url解码在解码%22时没有出错。这是双引号。当程序员在字符串中输入双引号时,它们必须使用两个双引号“”来表示双引号。
例如
string myString = "It\"s nice to meet you";
console.write(myString);
输出
很高兴见到你
但是当url解码双引号时为什么它不会破坏。字符串通过url解码器后,只有一个引号“。为什么这不会破坏代码?
例如
string myString = "It%22s nice to meet you";
myString = HttpUtility.UrlDecode(myString);
console.Write(myString);
输出
很高兴见到你
答案 0 :(得分:4)
转义双引号的需要只是C#中文字字符串的一个问题。语言是这样定义的。非文字不受影响:((char)35).ToString() == "\""
为真。
这对实际运行时值没有影响。 "\"".Length
是1. CLR不知道转义。
CLR能够托管许多编程语言。它并不关心单一语言的逃避规则。
库函数甚至不能告诉你如何编写或计算字符串。即使他们想要。
答案 1 :(得分:1)
结果是一样的。它们只是双引号的不同表示 - 取决于你如何解码它。
// All the same:
string myString1 = @"It""s nice to meet you"; // string simplification
string myString2 = "It\"s nice to meet you"; // escaping a double quote
string myString3 = HttpUtility.UrlDecode("It%22s nice to meet you");