2016-05-16 2 views
2

Comment puis-je détecter que la fonction ToUpper() est possible sur cette chaîne? Par exemple lorsque la langue d'entrée n'a pas de majuscule. J'ai ceci:vérifier si la fonction majuscule fonctionne

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

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

et la sortie est: "???? ????? ????"

J'ai essayé Console.WriteLine(text.ToUpper(new CultureInfo("ar"))); mais le résultat est le même que précédemment.

+1

Est-ce que 'Console.WriteLine (text)' imprime les caractères? Je pensais que ToUpper ignorait les caractères non mappés. En d'autres termes, votre fenêtre de console n'a peut-être pas la police ou l'environnement local pour afficher correctement cette chaîne. – payo

+1

Ce n'est pas le 'ToUpper()' qui cause le problème. [Voir ici pour plus d'informations.] (Http://stackoverflow.com/questions/21751827/displaying-arabic-characters-in-c-sharp-console-application) –

+0

Lorsque je l'exécute dans LinqPad, cela fonctionne comme prévu. –

Répondre

0

Tout est correct, sauf pour votre texte. La console peut uniquement imprimer des caractères ASCII. Une table de tous les caractères que vous pouvez utiliser: http://www.asciitable.com/index/asciifull.gif Ceci est dû à la police utilisée par la console. Si vous modifiez la police incompatible à un compatible, cela fonctionnera.

+0

Je l'ai corrigé. –