C# 字符序列把字符顺序弄乱了?

C# 字符序列把字符顺序弄乱了?,c#,visual-studio,exception,C#,Visual Studio,Exception,我必须处理一个异常,捕获它并匹配消息,如果消息包含某个错误代码,则执行某些操作(不相关) 例外信息如下(英语,但代码和后面的乱码在任何语言中都是相同的): 我必须使用代码7-3559(如图所示)。在我的代码中,我刚刚做了一个e.Message.Contains(“7-3559”),但它未能捕获异常。不知哪里出了问题,我将错误信息复制粘贴到了regex101.com上,经过一番尝试和错误之后,我意识到e.Message.Contains(“3559-7”)才是真正的代码,它可以工作。我只是不知道为

我必须处理一个异常,捕获它并匹配消息,如果消息包含某个错误代码,则执行某些操作(不相关)

例外信息如下(英语,但代码和后面的乱码在任何语言中都是相同的):

我必须使用代码
7-3559
(如图所示)。在我的代码中,我刚刚做了一个
e.Message.Contains(“7-3559”)
,但它未能捕获异常。不知哪里出了问题,我将错误信息复制粘贴到了regex101.com上,经过一番尝试和错误之后,我意识到
e.Message.Contains(“3559-7”)
才是真正的代码,它可以工作。我只是不知道为什么。是什么把字符串弄得乱七八糟,以至于
7-
实际上是
-7
,而且在
3559
后面

我想我还应该提到我正在与Visual Studio 2019和C#合作

HxD:


这是使用双向文本时遇到的一个常见问题,换句话说,该文本同时包含文本方向性:从右到左(RTL),如阿拉伯语文本和从左到右(LTR)

在这里,我们将阿拉伯语文本与英语文本混合在一起,因此将对文本应用一些规则来确定方向性。您可以找到有关此的详细信息

简而言之,在调试器中看到的文本是打印文本时文本的显示方式,而不是它在内存中的表示方式

在这里,我使用Linqpad粘贴文本,编辑器立即将其转换为内存中的表示形式。一旦打印出来,文本将以不同的方向显示


可能是因为结尾的阿拉伯语单词。无论如何,请尝试在Contains函数中使用
StringComparison.OrdinalIgnoreCase
$-5002 - $make sure that the consumed quantity of the component item would not cause the item's stock to fall below zero  [ige1.whscode][line: 1] , 'production order no: 20580033 line: 1'  [الرسالة 3559-7]