【问题标题】:C#: String with escaped quote ends up with three escaped characters [duplicate]C#:带有转义引号的字符串以三个转义字符结尾[重复]
【发布时间】:2023-04-09 15:57:01
【问题描述】:

我在 C# 中遇到转义字符。

我正在 SQL Server 数据库中保存一个 varchar 字段,其中包含需要转义的引号。所以,一个例子可能是这样的:(\"value\")

当我的前端应用程序从 API 使用此值时,我会使用单个转义字符获取该值,就像在数据库中一样。

从 C# 代码使用此 API 时出现问题。出于某种原因,这个单个字符 (\) 被其中三个 (\\\) 替换。

调试代码后发现,当我检索数据时,我得到了这个:

debugging the value

当我点击检查该值时,它似乎正常:

Value into Text Visualizer

我的问题是为什么要添加这两个额外的反斜杠,我怎样才能摆脱它们以便只得到一个 => (\")。

希望任何人都可以帮助我:)

谢谢!

【问题讨论】:

  • 请出示您的代码
  • 添加反斜杠的最简单方法是添加一个。可能是您的一位朋友/同事的恶作剧。如果您怀疑编码中的错误较少,而错误较多 - 请查看minimal reproducible example 发布代码/输入/输出的指南和edit 相应发布。
  • 调试器总是将字符串显示为代码中的非逐字文字。这意味着像 \ 和 " 这样的字符会被转义。请参阅重复。
  • 别这样。绑定你的sql参数。

标签: c# escaping


【解决方案1】:

您的值应该是正确的。调试器窗口转义了“/”,因此它看起来像 escape(backslash)escape(quote)。 (//)(/“)

【讨论】:

  • 没错,但问题是如果我从邮递员那里使用这项服务或其他服务,我会得到这三个反斜杠。
猜你喜欢
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 2019-03-17
  • 2013-03-12
  • 1970-01-01
  • 2016-01-16
  • 1970-01-01
  • 2023-01-24
相关资源
最近更新 更多