在波斯语/阿拉伯语字符中,某些字符可选地位于其他字符的顶部或底部,例如 \xd9\x90 \xd9\x8e \xd9\x91 \xd9\x8f.
在我的例子中,如果我使用这个字符,indexOf找不到我的单词。认为波斯语/阿拉伯语是 RTL 语言。
\n\n例如:
\n\n\xd9\x85\xd9\x86\xd9\x91\xd9\x85 => \xd9\x85 + \xd9\x86 + \xd9\x91 + \xd9\x85\n\nC#:\n\n"\xd9\x85\xd9\x86\xd9\x91\xd9\x85".IndexOf("\xd9\x85\xd9\x86");\nreturn -1\n\njavascript:\nRun Code Online (Sandbox Code Playgroud)\n\n\xd9\x85\xd9\x86\xd9\x91\xd9\x85 => \xd9\x85 + \xd9\x86 + \xd9\x91 + \xd9\x85\n\nC#:\n\n"\xd9\x85\xd9\x86\xd9\x91\xd9\x85".IndexOf("\xd9\x85\xd9\x86");\nreturn -1\n\njavascript:\nRun Code Online (Sandbox Code Playgroud)\r\nC# 中发生了什么。任何人都可以解释这个吗?
\n通过StringComparison.Ordinal作为参数传递给重载String.IndexOf(),您还可以执行以下操作:
"\xd9\x85\xd9\x86\xd9\x91\xd9\x85".IndexOf("\xd9\x85\xd9\x86", StringComparison.Ordinal); // returns 0\nRun Code Online (Sandbox Code Playgroud)\n