【问题标题】:End characters not being added to a string未添加到字符串的结束字符
【发布时间】:2017-12-06 15:08:13
【问题描述】:

我正在尝试为 DirectorySearch 过滤器加载字符串。

strFilter = "((objectClass=container)(cn=" & strParameter & "))"

结束字符是什么并不重要,它们不会被添加到字符串中。它总是以:

strFilter = "((objectClass=container)(cn=" & strParameter

这太令人沮丧了。我什至不能随后添加结束括号。到底是怎么回事?字符串不应该是这样的!

【问题讨论】:

  • 你能在那个有问题的行之前给我们看更多的代码吗?
  • 他们不... strParameter里面是什么?你会在 strFilter 设置后立即检查它的值吗?
  • 如果strParameter 包含一个空字符(char 0),则大多数文本编辑器/查看器通常不会呈现字符串的其余部分,即使它实际上存在。尝试从您的字符串中修剪空字符,看看它是否可以解决您的问题:strFilter = "((objectClass=container)(cn=" & strParameter.Trim(ChrW(0)) & "))".
  • 那个“.Trim(ChrW(0))”似乎在工作。非常感谢!
  • 很高兴能帮上忙!我会将其写为答案,以便您可以将此问题标记为已解决。

标签: .net string vb.net


【解决方案1】:

如果strParameter 包含一个空字符 (char 0),则大多数文本编辑器/文本查看器通常不会呈现该字符串的其余部分,即使它实际上存在。发生这种情况是因为空字符通常用于指示字符串的结尾。

尝试从你的字符串中删除任何空字符,看看它是否能解决你的问题:

strFilter = "((objectClass=container)(cn=" & strParameter.Trim(ChrW(0)) & "))"

更多信息:


如果您将来(由于某种原因)在字符串中间遇到空字符,您可以尝试一起删除所有空字符:

strFilter = "((objectClass=container)(cn=" & strParameter.Replace(ChrW(0), "") & "))"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    相关资源
    最近更新 更多