Как я могу преобразовать мою строку с моим общим языком на английский? - PullRequest
0 голосов
/ 17 июня 2010

У меня есть некоторые данные Excel, включая столбец Excel, который я программно создал в SQL-таблице, с другой стороны - мой столбец Excel. Одно из названий столбца - mydetail. Когда я пытаюсь преобразовать его в верхний регистр, я получаю MYDETAİL. Как использовать метод ToUpper () для получения MYDETAIL, а не MYDETAİL?

Ответы [ 3 ]

5 голосов
/ 17 июня 2010

Я предполагаю, что вы турок или, по крайней мере, используете турецкий компьютер.

В турецком языке «i» преобразуется в «İ» в верхнем регистре.

При преобразовании необходимо использовать другую культуру, используя метод String.ToUpper, который принимает объект CultureInfo в качестве аргумента. Если вы используете en-US или en-GB, вы должны получить то, что хотите.

Фактически, пример на странице, на которую я ссылался, использует en-US и tr-TR (турецко-турецкий) для слова "индиго" в качестве примера различий.

1 голос
/ 17 июня 2010

Попробуйте что-то вроде:

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

С MSDN :

используйте InvariantCulture для обеспечения согласованности поведения независимо от настроек культуры в системе

0 голосов
/ 17 июня 2010

Вам нужно будет позвонить .ToUpper() с нужным CultureInfo . См. MSDN с некоторыми примерами использования .ToUpper (CultureInfo).


Рекомендуется указывать CultureInfo во всех методах манипулирования строками, таких как String.Format (), <primitive> .ToString () или, например, Convert.Int32 (object, CultureInfo).

FxCop хорошо напоминает вам о проблемах с этим в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...