【问题标题】:Special local characters in a unit test isn't the same everywhere单元测试中的特殊本地字符在任何地方都不相同
【发布时间】:2011-01-28 13:22:57
【问题描述】:

在单元测试中我有这个:

LastName = "Näs"

这是后来编码的,所以我想确保它是正确的。在我的配置(瑞典区域设置)上对我来说很好。 但是在乌克兰的乌克兰环境中的尤里没有看到这一点。相反,他看到了这一点:

LastName = "Nдs"

这使得单元测试失败... :(

应该是utf-8,为什么他看不到同一个字符..?

【问题讨论】:

  • 您说“应该是 utf-8”,但您验证了吗?检查测试文件的字节流。在这种情况下,一个 UTF-8 字符将是两个字节长。听起来您实际上是在另一种编码中(可能是单字节编码),因此解码不同。
  • 这是在源文件中,还是您的测试读入的文本文件中?

标签: c# visual-studio-2008 unit-testing localization utf-8


【解决方案1】:

这取决于 Visual Studio 是如何读取文件的……如果它打开它并假设其他编码,那将导致问题。您需要要么确保每个人都有相同的设置,标准化为 UTF-8,对源代码中的任何非 ASCII 字符使用\uxxxx escape

标准化更容易出错,但代码最终更容易阅读; \uxxxx 很健壮,但从可读性的角度来看很痛苦:(

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2022-01-22
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多