プライム記号付きの文字列を使用しようとしていますが、String.StartsWithメソッドで問題が発生しています。次のコードが例外を投げる理由は何ですか?String.StartsWith次の文字がプライムシンボル(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.");
}
私は、このプライム記号(文字)697がアクセントとして扱われているので、それの前の文字を変えているので、問題があると思われます。 (私はそれがあるべきではないと思う - それはthe prime symbolでなければならないので、その前の数字の数字を変更すべきではない)。私はこれをテストする方法については正確にはわかりません。私はthis answerで提案した方法を試してみましたが、それはfalseを返さ:任意の助け
IsLetterWithDiacritics(text_1[5]) // == False
IsLetterWithDiacritics(fullText[5]) // == False
IsLetterWithDiacritics(fullText[6]) // == False
感謝。 MSDNから
'InvariantCulture'または' Ordinal'を使うように言って、 'StringComparison'型のオーバーロードを使ってみましたか? –
@BradleyUffnerこれは動作しませんが、 'fullText.StartsWith(text_1、StringComparison.Ordinal)'が動作します。 – DavidG