You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Contains方法在土耳其服务器无法匹配子串的问题求助

问题原因与解决方案

问题根源在于string.Contains的默认行为:它采用当前线程的区域设置(StringComparison.CurrentCulture)执行字符串比较。土耳其语区域对字符匹配有特殊规则(比如大写"I"对应小写"ı",小写"i"对应大写"İ"),导致基于文化的匹配逻辑和预期结果不一致。

要实现不受文化/语言影响的安全子串检查,需显式使用序数比较(基于Unicode码点,与区域无关):

精确区分大小写匹配

string myString = "TRANSACTION HAS BEEN COMPLETED";
bool check = myString.Contains("TRANSACTION", StringComparison.Ordinal);

不区分大小写的序数匹配

如果需要忽略大小写且保持跨环境一致性:

bool check = myString.Contains("transaction", StringComparison.OrdinalIgnoreCase);

序数比较完全依据字符的Unicode编码值进行匹配,不考虑任何区域文化的特殊规则,是跨服务器环境下最稳定的字符串匹配方案,适合对匹配一致性要求高的业务场景。

内容的提问来源于stack exchange,提问作者Cameron Castillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:25:22