这两个字符串之间有什么区别?

1 c# string culture nunit

使用nUnit测试特定文化的输出(货币格式),但我们得到以下结果.

  Fail: Formatting currency amount
  String lengths are both 11. Strings differ at index 2.
  Expected: "12 765,87 €"
  But was:  "12 765,87 €"
  -------------^
Run Code Online (Sandbox Code Playgroud)

我们看不出字符串之间的区别.我们的预期结果使用"空格"字符.

我们可以将不同的空格字符放入可接受的结果中以使测试通过吗?

顺便说一下,测试的培养物是fr-FR.

编辑:感谢Adam,你发现了unicode角色.我们改变了我们的预期结果,现在每个单元测试通过.

Ada*_*eld 5

它们可能是不同类型的空间.Unicode有很多不同的空格字符.通过将字符转换为整数来查看索引2处的代码点以获得答案.

编辑

在回复您的评论时,代码点160是一个不间断的空间.您可以直接其输入到源代码中(例如Windows上数字小键盘上的Alt + 0160),或使用转义序列:

// U+20AC is the Unicode code point for the euro sign
string expected = "12\u00A0765,87 \u20AC";
Run Code Online (Sandbox Code Playgroud)