为什么在我的字符串中添加了一些非预期的符号?

チーズ*_*ズパン 2 c# string console-application

我写了一个控制台应用程序,它从Sharepoint列表中的某些字段中获取字符串.然后我简单地将字符串写入控制台.这适用于大多数领域.有一个MultiLineTextField启用了RichText,我必须删除所有html标签,这会导致此问题.

即使删除了所有标签后,字符串似乎也包含从未添加到字符串中的问号.最奇怪的是,当我设置断点并查看字符串的值时,没有问号,但它们突然出现在控制台输出上.

我唯一能想到的就是修剪弦乐.因为有时它们出现在实际字符串的前面,有时候它们处于和它之间,但从不在它们之间.

所以这就是我的尝试:

myString = myString.Trim();
myString = myString.Replace("?",string.Empty);
Run Code Online (Sandbox Code Playgroud)

但这并没有解决问题.除此之外,如果其中一个字符串应该包含问号,这将不是一个聪明的解决方案.有关详细代码,请参阅上面的链接.

Convert.ToBase64String(Encoding.UTF8.GetBytes(myString))给了我下面的输出:

4oCLTWVobCwgRWllciwgV2Fzc2VyLCBIYWNrZmxlaXNjaCA =

Mar*_*ell 5

字符串末尾可能有一些非打印unicode(或可能是低ASCII)字符.控制台具有不同的编码,并且通常会渲染?.基本上:使用indexer(yourString[n])或yourString.ToCharArray()调查字符串中实际位置的内容?.


通过编辑,我们可以看到字符串在开头有一个零宽度空间(十进制8203):

在此输入图像描述