| Supprimer les accents d'une chaîne de caractères en c# |
|
|
| 18-01-2008 | |
|
Au boulot nous avions des problèmes lors de l'envoie de certaines chaînes de caractères accentuées ou contenant des caractères spéciaux à divers modules. Un de ces modules écrivait notemment un fichier sur une partition avec le nom que l'utilisateur avait entré. On comprend rapidemend tout l'intêret de cet article. En fait il est possible de remplacer des accents de façon assez simple. Pour .NET1.1 le code suivant fonctionnera dans nos pays européens : public static string RemoveDiacritics(string inputString) { Pour .NET2 j'ai trouvé le code suivant sur le blog de Michael Kaplan L'avantage est qu'il devrait fonctionner quelque soit la langue... Tous dans le même panier, qu'on soit français, chinois, russe, ... public static string RemoveDiacritics(string inputString) { Un problème subsite encore : celui des caractères spéciaux. Pour pallier à ce problème il est possible d'utiliser les expressions régulières. Ainsi on défini un jeu de caractère valide et les caractères qui ne sont pas inclus dans ce jeu seront supprimés ou remplacés par des espaces. Exemple en n'autorisant que les caractères alphanumériques, tiret, underscore, point et parenthèses : Regex.Replace(inputString, @"[^A-Za-z0-9_\-\.()]", " "); |
| < Précédent | Suivant > |
|---|

