Il arrive souvent que dans les applications nous rencontrons un problème avec les différents jeux de caractères (ASCII, LATIN-1, UTF-8) ; il faut alors les convertir. [astuce]
Remarque : afin de gérer tous les caractères de toutes les langues, préférez l'encodage UTF-8.
$KCODE = 'U' #UTF-8 : s'assurer que le code de la page est en UTF-8
En Ruby vous pouvez trouver ceci pour résoudre votre problème : [iconv]
# attention destination, source Latin-1 => UTF-8
@c = Iconv.new('utf-8','iso-8859-1')
text = @c.iconv(mon_texte_a_encoder)
Iconv.new('iso-8859-15//IGNORE//TRANSLIT', 'utf-8').iconv(text)
Cette fonction comporte cependant quelques "Bugs" et vous devez gérer les cas particuliers des accents.
Il est donc préférable d'utiliser pack, unpack :
*/ unpack : créé un tableau avec le n° du caractère ascii (code ASCII)
C : 0 à 255
c : -128 à 127
*/ pack : ffff
U : UTF-8
Transformer un "string" iso-8859-1 en UTF-8 : string.unpack('C*').pack('U*')
Ruby Doc [arr.pack] - [str.unpack(format) => anArray]