如何解码GridView中TextBox.Text里的转义双引号?
解决方案:GridView TextBox 双引号转义问题
你遇到的是双重转义问题:原本的HTML实体"被额外添加了反斜杠转义,导致最终字符串出现\"。以下是针对性的解决方法:
方案1:精准字符串替换(最直接)
直接移除"前的反斜杠,完全匹配你的期望结果:
TextBox selectedRowTextbox = (TextBox)selectedRow.Cells[5].Controls[1]; string selectedRowText = selectedRowTextbox.Text; // 将\"替换为" selectedRowText = selectedRowText.Replace(@"\"", """);
方案2:利用正则转义处理
Regex.Unescape可以移除字符串中的转义反斜杠,刚好能把\"转为":
TextBox selectedRowTextbox = (TextBox)selectedRow.Cells[5].Controls[1]; string selectedRowText = selectedRowTextbox.Text; // 处理反斜杠转义 selectedRowText = Regex.Unescape(selectedRowText);
如果后续需要把"转为实际双引号,再追加Server.HtmlDecode(selectedRowText)即可。
为什么之前的方法未生效?
Server.HtmlDecode:仅处理HTML实体转义,不会移除反斜杠,直接使用会得到24\" Sparkle Disco Ball,不符合需求。Uri.UnescapeDataString:用于URL编码解码,和HTML实体无关,因此无效。Regex.Replace:若正则表达式未精准匹配\"(比如未转义反斜杠),则无法生效,精准字符串替换更可靠。
内容的提问来源于stack exchange,提问作者PhillipPDX
相关产品推荐
相关产品推荐

