Quick answer: Godot 4 C# string.Equals returning false for identical-looking strings across locales? Default culture-aware comparison treats some characters as equal in one locale, not another - use Ordinal.

ASCII string from network compared to a locally-typed equivalent; equality fails in Turkish locale.

Use StringComparison.Ordinal

s1.Equals(s2, StringComparison.Ordinal)

Byte-level equality; locale-independent.

Or use OrdinalIgnoreCase

If case-insensitive needed; locale-independent.

Audit network string comparisons

Each network-sourced string comparison. Default culture-aware is the bug surface.

“Default string comparison is culture-aware. Network data needs ordinal.”

Establish 'Ordinal for data, culture for display' as project rule.

Related reading