【问题标题】:How can i convert my string with my common language to English?如何将我的通用语言字符串转换为英语?
【发布时间】:2010-06-17 11:00:50
【问题描述】:

另一方面,我有一些 Excel 数据,包括我在 sql 表中以编程方式创建的 Excel 列。列名称之一是mydetail。当我尝试将其转换为大写时,我得到MYDETAİL。如何使用 ToUpper() 方法获取MYDETAIL 而不是MYDETAİL

【问题讨论】:

  • 这个问题对我来说毫无意义。如果可能,请更详细地解释(也许更好的英语?)。

标签: c# .net visual-studio visual-studio-2008


【解决方案1】:

我猜你是土耳其人,或者至少使用土耳其计算机。

在土耳其语中,“i”确实会转换为大写的“İ”。

在进行转换时,您需要使用不同的文化,方法是使用将CultureInfo 对象作为参数的String.ToUpper 方法。如果你使用 en-US 或 en-GB,你应该得到你想要的。

事实上,我链接到的页面上的示例在“靛蓝”一词上使用了 en-US 和 tr-TR(土耳其-土耳其语)作为差异示例。

【讨论】:

  • @Phsika - 土耳其语是(据我所知)唯一一种大写字母 I 带有点 (İ) 的语言
【解决方案2】:

尝试类似:

String result = source.ToUpper(CultureInfo.InvariantCulture);

来自MSDN

使用 InvariantCulture 确保无论系统的文化设置如何,行为都会保持一致

【讨论】:

    【解决方案3】:

    您需要致电.ToUpper() 并提供所需的CultureInfo。有关如何使用 .ToUpper(CultureInfo) 的一些示例,请参阅 MSDN


    建议在所有字符串操作方法上指定 CultureInfo,例如 String.Format()、<primitive>.ToString() 或 Convert.Int32(object, CultureInfo)。

    FxCop 在提醒您代码中存在此问题方面做得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-22
      • 2011-02-19
      • 2013-01-03
      • 1970-01-01
      • 2023-04-08
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多