C# string.Replace 用于删除 �?

C# string.Replace for removing �?

我正在使用下面的行将十六进制转换为 UTF8 字符串。

var obInstruction = Encoding.UTF8.GetString(ob.Bits);

在结果中,我在每个字符之间得到了�,如下图所示。 � 是什么?

所以我在行中添加了替换并将其更改为 var obInstruction = Encoding.UTF8.GetString(ob.Bits).Replace("�", ""); 但 � 不会消失。

当我尝试替换其他字符时 Replace 工作正常但不适用于 �.

什么是 � 以及如何删除它?

在 Power 查询中,Text.Clean 会删除这些奇怪的字符,但我不确定在 C# 中该怎么做。

*编辑:为UTF32的结果添加了一张图片 使用 UTF32 的空框:

这应该可以完成工作:

var input = new byte[5];

var encoding = Encoding.GetEncoding(Encoding.ASCII.EncodingName,
    new EncoderReplacementFallback(""),
    new DecoderReplacementFallback(""));
        
var converted = Encoding.Convert(Encoding.UTF8, encoding, input);

var output = encoding.GetString(converted);

这将删除所有带有空字符串的非 ascii 字符