Próbuję użyć ciąg z symbolem Prime w nim, ale mam pewne problemy z metodą String.StartsWith. Dlaczego poniższy kod rzuca wyjątek?String.StartsWith nie działa, gdy następny znak jest symbolem podstawowym (char) 697
string text_1 = @"123456";
string text_2 = @"ʹABCDEF";
string fullText = text_1 + text_2;
if (!fullText.StartsWith(text_1))
{
throw new Exception("Unexplained bad error.");
}
Podejrzewam, że problem jest z powodu tego Prime symbol (char) 697 jest traktowany jako akcent i tak zmienia nas przed nim. (Nie sądzę, że tak powinno być - powinno być to the prime symbol i dlatego nie powinno się zmieniać numerów liczbowych przed nim). Nie jestem do końca pewien, jak to przetestować. Próbowałem metodę zaproponowaną w this answer ale wrócił fałsz:
IsLetterWithDiacritics(text_1[5]) // == False
IsLetterWithDiacritics(fullText[5]) // == False
IsLetterWithDiacritics(fullText[6]) // == False
Dzięki za pomoc.
Czy próbowałeś używać przeciążenia, które pobierają typ "StringComparison" i mówisz mu, aby używał 'InvariantCulture' lub' Ordinal'? –
@BradleyUffner To nie zadziała, ale 'fullText.StartsWith (text_1, StringComparison.Ordinal)' zadziała. – DavidG