更新。我在GitHub上创建了一个测试项目,在那里你可以看到测试正在通过Appveyor(Windows)并在Travis(Linux和OSX)上失败。
https://github.com/nopara73/UTF8Problems/
我有一个.NET Core 2 xUnit测试项目,我正在测试字符串"é"
的UTF8编码。在Windows上,测试正在通过,在Linux和OSX上,它们都失败了。
代码。
[Fact]
public void CanEncode()
{
var character = "é";
var encoded = Encoding.UTF8.GetBytes(character);
var bytes = new byte[] { 195, 169 };
Assert.Equal(bytes, encoded);
}
[Fact]
public void CanDecode()
{
var character = "é";
var bytes = new byte[] { 195, 169 };
var decoded = Encoding.UTF8.GetString(bytes);
Assert.Equal(character, decoded);
}
[Fact]
public void CanEncodeDecode()
{
var character = "é";
var encoded = Encoding.UTF8.GetBytes(character);
var decoded = Encoding.UTF8.GetString(encoded);
Assert.Equal(character, decoded);
}
输出失败。 Travis,Linux:
问题。