我编写了一个控制台应用程序,它从Sharepoint列表中的某些字段中获取字符串。然后我简单地将字符串写入控制台。这适用于大多数领域。有一个MultiLineTextField启用了RichText,我必须remove all the html-tags,导致此问题。
即使删除了所有标签,字符串似乎也包含从未添加到字符串中的问号。最奇怪的是,当我设置断点并查看字符串的值时,没有问号,但它们突然出现在控制台输出上。
我唯一能想到的就是修剪弦乐。因为有时候它们出现在实际字符串的前面,有时候它们处于和它之间,但从不在它们之间。
所以这就是我的尝试:
myString = myString.Trim();
myString = myString.Replace("?",string.Empty);
但这并没有解决问题。除此之外,如果其中一个字符串应该包含问号,这将不是一个聪明的解决方案。有关详细代码,请参阅上面的链接。
同样Convert.ToBase64String(Encoding.UTF8.GetBytes(myString))
给出了以下输出:
4oCLTWVobCwgRWllciwgV2Fzc2VyLCBIYWNrZmxlaXNjaCA =
答案 0 :(得分:5)
字符串末尾可能有一些非打印unicode(或可能是低ASCII)字符。控制台具有不同的编码,并且通常会呈现?
。基本上:使用索引器(yourString[n]
)或yourString.ToCharArray()
来调查字符串中实际位于?
位置的内容。
通过编辑,我们可以看到字符串在开头有一个zero-width space(十进制8203):
答案 1 :(得分:1)
听起来你可能遇到unicode字符问题。您有可能将字符串输出为ASCII而不是Unicode。看看at this question,因为您可能会遇到同样的问题。