我有字符串“Ärger,-Ökonom-i-Übermut-ẞ-ß”,当我运行IndexOf(“ - ”)时,我得到23的结果。如果我在同一个字符串上使用Replace
被取代。
我不明白发生了什么,所以有人可以就这个问题说清楚吗? Application Culture是在Croatian上设置的,它不是德语,框架版本是3.5。
将文化转变为德语(de-DE)并不会改变这种奇怪的行为。
以下是调试器的屏幕截图:
答案 0 :(得分:3)
由于利斯特先生不想要他当之无愧的赞成票,我会在此贴上他的评论,并接受回答。
根据.NET 3.5,我担心U + 1E9E未定义,因为 Unicode 4.0中不存在此字符(或任何版本的 Unicode .NET 3.5使用)。这是一个相当新的补充(大写版本 德国ß)。因此IndexOf函数忽略它。如果你有任何 控制文本,你可以将角色改为ß或SS, 什么更合适。当然更好的解决方案是 将.NET升级到v4.0!
答案 1 :(得分:1)