C# - ToLower()有时会从字母“I”中删除点

时间:2011-07-06 18:06:29

标签: c# string culture

我们在某些字符串上调用ToLower()时发现了一个奇怪的错误。

输入字符串是:

string s = "DocumentInfo";
string t = s.ToLower();
// sometimes, t == documentinfo
// other times, t == documentınfo  (note dot is missing from i - INCORRECT)

我们将字符串传递给下游的Web服务查询,因此它给我们带来了问题。

我最初的猜测是它与Culture或UICulture有关,因为我们的一些页面会为每个用户自定义这些设置。

这可能是问题吗?有没有办法可以强迫它正常工作?

更新2011.07.06

我发现我可以通过将Culture设置为 tr-TR 来复制该问题。 不确定其他文化是否会受到影响。

2 个答案:

答案 0 :(得分:24)

尝试使用String.ToLowerInvariant()

答案 1 :(得分:3)

尝试:

s.ToLower(new CultureInfo("en-US", false));

如果您得到不同的结果,您的CultureInfo.CurrentCulture可能会设置为其他内容。