Shiny happy people coding

Codons avec le sourire

l'upcase d'accent c'est possible avec ActiveSupport

| Comments

Alors que sur IRC quelqu’un demande, comment faire un upcase sur des accents et conserver ces accents en majuscule, je lui répond que ce n’est pas possible car Ruby 1.8 ne supporte pas l’UTF8.

Je propose donc une solution peu élégante. Lister chaque éléments qui soient considéré comme non modifié par upcase et faire une liste de gsub comme ceci

irb(main):002:0> puts “aéèb”.gsub(“é”, “É”).gsub(“è”, “È”).upcase AÉÈB => nil

C’est alors que Farzy nous fournit un bout de code qui évite mon code peu pratique et surtout fonctionne avec tous les caractères unicode.

% irb >> $KCODE = ‘u’ => “u” >> “éè”.upcase => “éè” >> require ‘activesupport’ => true >> “éè”.chars.upcase.to_s => “ÉÈ” >> RUBY_VERSION => “1.8.5” >>

Il faut effectivement utiliser la librairie ActiveSupport qui fournit un support UTF8, mais cela fonctionne parfaitement. Merci à lui pour cet petite astuce.