2016-05-16 16 views
2

Как я могу обнаружить, что функция ToUpper() возможна в этой строке? Например, если язык ввода не имеет верхнего регистра. у меня есть это:проверить, будет ли работать функция Верхний регистр

String text = "لان يقوم غينيا انتصا"; 

Console.WriteLine(text.ToUpper(CultureInfo.CurrentUICulture)); 

и выход: "???? ????? ????"

Я попробовал этот Console.WriteLine(text.ToUpper(new CultureInfo("ar")));, но результат такой же, как и ранее.

+1

делает 'Console.WriteLine (текст)' печатает символы? Я думал, что ToUpper проигнорировал unmapped chars. Другими словами, возможно, ваше консольное окно не имеет шрифта или локали, чтобы правильно отобразить эту строку. – payo

+1

Это не проблема 'ToUpper()', которая вызывает проблему. [См. Здесь для получения дополнительной информации.] (Http://stackoverflow.com/questions/21751827/displaying-arabic-characters-in-c-sharp-console-application) –

+0

Когда я запускаю это в LinqPad, он работает так, как ожидалось. –

ответ

0

Все правильно, за исключением текста. Консоль может печатать только ASCII-символы. Таблица всех символов, которые вы можете использовать: http://www.asciitable.com/index/asciifull.gif Это потому, что используется шрифт, используемый консолью. Если вы измените несовместимый шрифт на совместимый, он будет работать.

+0

Я исправил его. –