来自 excel 的字符串的长度大小与实际值不同

String from excel having length size different than real value

我构建了一个网络应用程序,它使用 EPPLUS 从上传的 excel 文件中逐行读取字符串值。

刚才我遇到了奇怪的行为,我的 string.length 尺寸与实际值不同。

清楚的代码:

//pretend str value = "cat"
string str = Worksheets.Cells["A1"].Value.ToString().Trim();

//output will be = "cat"
Debug.Writeline(str);

//it should be = 3 right
//but it's actually = 4
Debug.Writeline(str.Length);

谁能解释为什么会发生这种情况? 以及如何解决它,因为我需要将该字符串与我自己的硬编码字符串进行比较

如果长度报告为 4,那么您的字符串中肯定还有其他内容。你一个字节一个字节地看了吗?

试试这个:

var cat = Worksheets.Cells["A1"].Value.ToString().Trim();
foreach (var c in cat.ToCharArray())
{
    Debug.WriteLine("{0}: '{1}'", (int)c, c);
}

它应该可以帮助您确定字符串中还隐藏了什么。我怀疑这是 "odd" EPPlus 正在做的事情(我一直在使用它并且从未经历过这样的事情) - 这几乎可以肯定是您的源数据中的一些奇怪的东西。