Forum: Rails France remplacer les accents d'un enregistrement en utf8...

Posted by Frioffol Friofool (friofool)
on 2008-03-03 01:34
Salut,

Je souhaiterai remplacer les accents d'une chaine provenant d'une table
encodée en UTF8 pour formater des urls correctes.

Evidement ça ne marche pas.

Mon code :

----
  source = "àâéè"
  dest = "aaee"

  option = Option.find(:all)

  nomOption = option.libelle_option
  nomOption = nomOption.tr(source,dest)

----

Les accents ne sont pas remplacés avec cette méthode.

Est ce qu'il y a un moyen différent de le faire ?
Est ce que l'encodage pose problème et si oui comment contourner le
problème ?

Merci...
Posted by Frederic de Villamil (Guest)
on 2008-03-03 08:00
(Received via mailing list)
Le 3 mars 08 à 01:34, Frioffol Friofool a écrit :

>
> Les accents ne sont pas remplacés avec cette méthode.
>
> Est ce qu'il y a un moyen différent de le faire ?
> Est ce que l'encodage pose problème et si oui comment contourner le
> problème ?
>
> Merci...
> -- 

Bonjour

J'utilise ça dans Typo :

     accents = { ['á','à','â','ä','ã','Ã','Ä','Â','À'] => 'a',
       ['é','è','ê','ë','Ë','É','È','Ê'] => 'e',
       ['í','ì','î','ï','I','Î','Ì'] => 'i',
       ['ó','ò','ô','ö','õ','Õ','Ö','Ô','Ò'] => 'o',
       ['œ'] => 'oe',
       ['ß'] => 'ss',
       ['ú','ù','û','ü','U','Û','Ù'] => 'u',
       ['ç','Ç'] => 'c'
       }
     accents.each do |ac,rep|
       ac.each do |s|
         str.gsub!(s, rep)
       end
     end

Et ça marche plutôt bien (sans compter le nombre important de
caract`eres pris en compte)

Bonne 
journéeFred
Posted by Yann KLIS (Guest)
on 2008-03-03 14:08
(Received via mailing list)
J'utilise le gem "unicode" pour faire ça.

require 'unicode'

class String
  def to_slug
    str = Unicode.normalize_KD(self).gsub(/[^\x00-\x7F]/n,'')
    str = str.gsub(/\W+/, '-').gsub(/^-+/,'').gsub(/-+$/,'').downcase
  end
end



++

yk

Le 03/03/08, Frioffol Friofool<list-incoming@andreas-s.net> a écrit :
Posted by Thibaut Barrère (thbar)
on 2008-03-04 16:18
(Received via mailing list)
Hello,

une solution de plus si tu es dans Rails (je m'en sers dans Comatose):

module DiacriticsFu
  def self.escape(str)

ActiveSupport::Multibyte::Handlers::UTF8Handler.normalize(str,:d).split(//
u).reject { |e| e.length > 1 }.join
  end
end

la RSpec en bas de ce message si tu es intéressé!

Thibaut Barrère / LoGeek
--
http://blog.logeek.fr - learning content for developers
http://evolvingworker.com - tools for a better day


============= diacritics_fu_spec.rb =========================

require File.dirname(__FILE__) + '/../spec_helper'
require 'diacritics_fu'

describe "DiacriticsFu.escape" do

  it "should remove the accents with grace" do
    DiacriticsFu::escape("éphémère").should eql("ephemere")
    DiacriticsFu::escape("éêèïîù").should eql("eeeiiu")
  end

  it "should work" do
    DiacriticsFu::escape("räksmörgås").should eql("raksmorgas")
  end

  KNOWN_DIACRITICS = { "a" => "àäâ", "e" => "éèêë", "i" => "îï", "o"
=> "ôö", "u" => "üû", "c" => "ç",
                       "I" => "ÏÎ",  "E" => "ÊË", "n" => "ñ", "O" =>
"ÔÖ", "Y" => "Ÿ", "y" => "ÿ", "N" => "Ñ"  }

  KNOWN_DIACRITICS.each do |expected_replacement,originals|
    it "should transform any of '#{originals}' into
'#{expected_replacement}'" do
      originals.split(//).each do |original|
        DiacriticsFu.escape(original).should eql(expected_replacement)
      end
    end
  end

end
Posted by Thomas (Guest)
on 2008-03-04 21:33
(Received via mailing list)
Bonjour Thibaut,

J'ai essayé d'implémenter votre code comme monkeypatch au plugin
PermalinkFu, mais cela n'a pas fonctionné. L'avez-vous déjà fait? En
avez-vous parlé à Rick Olson l'auteur du plugin?

Je ne comprends pas comment est structuré le plugin PermalinkFu car il
n'y a aucun commentaires.
Posted by Thomas (Guest)
on 2008-03-04 21:37
(Received via mailing list)
Ha ben en fait je viens d'y arriver. J'avais oublié qu'il fallait
redémarrer le serveur Mongrel pour recharger le plugin. Par contre
c'est dommage par défaut, votre patch transform les espaces en %20.
Posted by Thibaut Barrère (thbar)
on 2008-03-05 09:27
(Received via mailing list)
Hello,

voici un patch possible :

http://pastie.caboo.se/161676

En pratique je l'injecte dans PermalinkFu (il ne fait que supprimer
les accents).

J'en profite: vu que les français ont fréquemment ce souci d'accents
dans les urls, je me dis que ça pourrait être intéressant de publier
une bonne fois pour toute une gem ou un plugin rails pour gérer ça.
Qu'en pensez-vous ?

-- Thibaut
Posted by Renaud (Nel) Morvan (Guest)
on 2008-03-05 15:23
(Received via mailing list)
On 5 mar, 09:25, Thibaut Barrère <thibaut.barr...@gmail.com> wrote:
> dans les urls, je me dis que ça pourrait être intéressant de publier
> une bonne fois pour toute une gem ou un plugin rails pour gérer ça.
> Qu'en pensez-vous ?

J'aime bien je remarque juste que cette méthode a 2 petits defaults:

- elle est 4 fois plus lente qu'une methode à base de regex très
complète et sans doute encore pire pour une version à base de regexp
simple. Suivant l'usage qu'on en fait ca n'est pas forcement
dramatique
- les translitérations qu'elle supporte ne sont pas exhautive non plus
bien que loin d'être mauvaise. Pas de œ de ß .

Ca marche bien sur 'âäàãáäåāăąǎǟǡǻȁȃȧẵặ' ou
'òóôõōŏȯöỏőǒȍȏơǫọɵøồốỗổȱȫȭṍṏṑṓờớỡởợǭộǿ' et même 'ÇĆČĈĊ' en revanche.
Et c'est clair que c'est plus esthétique que gérer des tableau de
correspondance de caractère. Et évidemment c'est réservé exclusivement
aux langues occidendales.

Reste à espérer que la solution miracle viendra du coté de ruby 1.9
Posted by Thibaut Barrère (thbar)
on 2008-03-05 16:23
(Received via mailing list)
Salut Renaud!

> J'aime bien je remarque juste que cette méthode a 2 petits defaults:
>
> - elle est 4 fois plus lente qu'une methode à base de regex très
> complète et sans doute encore pire pour une version à base de regexp
> simple. Suivant l'usage qu'on en fait ca n'est pas forcement
> dramatique
> - les translitérations qu'elle supporte ne sont pas exhautive non plus
> bien que loin d'être mauvaise. Pas de OE de ß .

Merci pour les retours!

En pratique je me sers de cette méthode lors de la création d'articles
dans un CMS (la perf ne pose pas de problème dans mon cas, le facteur
limitant étant le rédacteur :-).

> Reste à espérer que la solution miracle viendra du coté de ruby 1.9

J'aimerais autant - car malgré tout ça fait un peu bricolage!

-- Thibaut
Posted by Chris Gers32 (gers32)
on 2008-03-06 14:35
> Et �a marche plut�t bien (sans compter le nombre important de
> caract`eres pris en compte)
> 
> Bonne 
> journ�eFred

Bonjour,

J'ai voulu implémenter la fonction de Fred ci-dessous, mais 
l'interpréteur Ruby n'aime pas... les accents, justement !

  def remove_accents( str )

    accents = { ['á','à','â','ä','ã','Ã','Ä','Â','À'] => 'a',
                ['é','è','ê','ë','Ë','É','È','Ê'] => 'e',
                ['í','ì','î','ï','I','Î','Ì'] => 'i',
                ['ó','ò','ô','ö','õ','Õ','Ö','Ô','Ò'] => 'o',
                ['Å“'] => 'oe',
                ['ß'] => 'ss',
                ['ú','ù','û','ü','U','Û','Ù'] => 'u'
    }
    accents.each do |ac,rep|
      ac.each do |s|
        str.gsub!(s, rep)
      end
    end
    return str

  end

Est-ce un problème dû à mon environnement de développement (Eclipse) ?

Merci,

Christophe.
Posted by Cyril Mougel (shingara)
on 2008-03-06 14:39
(Received via mailing list)
On Thu, Mar 6, 2008 at 2:35 PM, Chris Gers32
<list-incoming@andreas-s.net> wrote:
>  J'ai voulu implémenter la fonction de Fred ci-dessous, mais
>                 ['ß'] => 'ss',
>   end
>
>  Est-ce un problème dû à mon environnement de développement (Eclipse) ?
>

Ton fichier est-il bien encodé en UTF-8 justement ?

--
Cyril Mougel
http://blog.shingara.fr
Posted by Chris Gers32 (gers32)
on 2008-03-06 15:30
Aha ! Eh non, il ne l'était pas, justement... C'est maintenant chose 
faite.

Merci,

Christophe.
Posted by Renaud (Nel) Morvan (Guest)
on 2008-03-06 17:24
(Received via mailing list)
> J'ai voulu implémenter la fonction de Fred ci-dessous, mais
>                 ['ú','ù','û','ü','U','Û','Ù'] => 'u'
>     }
>     accents.each do |ac,rep|
>       ac.each do |s|
>         str.gsub!(s, rep)
>       end
>     end
>     return str
>
>   end
>

IMHO l'implémentation de cette méthode n'est pas optimale, au niveau
performance elle est a peu près équivalente à la méthode de Thibault
avec un support de caractère bien moindre.

- La table de correspondance est redéfinie à chaque execution, donc +
de GC et du temps perdu.
- Et il y a beaucoup trop d'itération, précompiler un nombre limité de
regexp serait beaucoup plus performant et éviterait que gsub le fasse
à chaque execution.

Si c'est executé une fois de temps en temps ca n'a pas d'importance
mais en cas d'utilisation intensive ca n'est pas terrible.
Posted by Chris Gers32 (gers32)
on 2008-03-07 09:24
Oui, je réalise que cette fonction n'est pas optimale, mais étant peu 
expérimenté en Ruby, c'était la solution la plus claire.

Mais de toute façon, elle ne marche pas dans mon cas : lorsque je fais 
tourner l'application dans le débogueur, je vois que Ruby ne reconnaît 
pas les caractères accentués reçus via une URL et les affiche comme des 
données binaires... Pourtant, ils semblent bien encodés dans l'URL ; la 
console affiche ceci :

Parameters: {... "description"=>"ÂÄéèÊËçîïÏÔü", "controller"=>...}

http://localhost/wrk_vpreparations/by_multi_criteria_xml?description=%C2%C4%E9%E8%CA%CB%E7%EE%EF%CF%D4%FC.......

SELECT DESC_FR FROM wrk_vpreparations WHERE (upper( desc_fr ) like 
'%ÂÄéèÊËçîïÏÔü%')

Donc on voit bien que toutes les lettres accentuées sont bien passées 
via l'URL, mais dans le SELECT, elles devraient avoir été converties en 
AAEEEECIIIOU (j'applique d'abord la fonction remove_accents(), puis 
upcase).

C'est bien au niveau de Ruby que ça déconne, parce que si j'essaie de 
faire un simple "é".upcase dans script/console (irb de RadRails), ça 
plante... En revanche, la même chose dans irb en ligne de commande 
renvoie "\202" ; je n'y comprends plus rien !
Posted by Chris Gers32 (gers32)
on 2009-02-19 09:13
Cela fait bientôt un an... J'ai été occupé à faire de la gestion de 
projets, mais me re-voici avec le même problème :

Cette fois, j'ai fait la substitution dans irb et elle fonctionne :

C:\Users\Christophe>irb
irb(main):001:0> str = "éthanol"
=> "\202thanol"
irb(main):002:0> str.gsub('é', 'e')
=> "ethanol"

Quelqu'un peut-il m'expliquer pourquoi ça ne fonctionne pas dans la 
méthode de Fred ci-dessous ? Comme je l'ai indiqué plus haut, mon 
fichier source est bien encodé en UTF-8.

  def ApplicationHelper.remove_accents( str )

    accents = { ['á','à','â','ä','ã','Ã','Ä','Â','À'] => 'a',
                ['é','è','ê','ë','Ë','É','È','Ê'] => 'e',
                ['í','ì','î','ï','I','Î','Ì'] => 'i',
                ['ó','ò','ô','ö','õ','Õ','Ö','Ô','Ò'] => 'o',
                ['Å“'] => 'oe',
                ['ß'] => 'ss',
                ['ú','ù','û','ü','U','Û','Ù'] => 'u'
    }
    accents.each do |ac,rep|
      ac.each do |s|
        str.gsub!(s, rep)
      end
    end
    return str
  end

J'ai également essayé la méthode escape( str ) de Thibaud (au-dessus), 
mais l'exécution de l'application semble s'interrompre (je n'ai sûrement 
pas su m'en servir...).

Merci,

Christophe.
Posted by Chris Gers32 (gers32)
on 2009-02-19 10:48
J'ai défini une version "light" de la méthode dans irb ; elle fonctionne 
:

irb(main):017:0> def remove_accents( str )
irb(main):018:1> accents = { ['é'] => 'e'}
irb(main):019:1> accents.each do |ac, rep|
irb(main):020:2* ac.each do |s|
irb(main):021:3* str.gsub!(s, rep)
irb(main):022:3> end
irb(main):023:2> end
irb(main):024:1> return str
irb(main):025:1> end
=> nil
irb(main):026:0> remove_accents( "éthanol" )
=> "ethanol"

Pourrait-il y avoir un paramétrage de l'encodage dans un fichier de 
configuration quelque part ou au niveau d'Eclipse ?

Christophe.
Posted by Fernando Perez (fernando)
on 2009-02-19 12:43
> irb(main):026:0> remove_accents( "éthanol" )
> => "ethanol"
> 
> Pourrait-il y avoir un paramétrage de l'encodage dans un fichier de 
> configuration quelque part ou au niveau d'Eclipse ?
> 
> Christophe.

"àâéè".parameterize.to_s  :-)
Posted by Chris Gers32 (gers32)
on 2009-02-19 17:10
Fernando Perez wrote:
> 
>> irb(main):026:0> remove_accents( "éthanol" )
>> => "ethanol"
>> 
>> Pourrait-il y avoir un paramétrage de l'encodage dans un fichier de 
>> configuration quelque part ou au niveau d'Eclipse ?
>> 
>> Christophe.
> 
> "àâéè".parameterize.to_s  :-)

Malheureusement, lorsque j'utilise la méthode parameterize, j'ai le 
message d'erreur suivant :

NoMethodError (undefined method `normalize' for "�thanol":String):
    c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/inflector.rb:283:in 
`transliterate'
    c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/inflector.rb:262:in 
`parameterize'
    c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/string/inflections.rb:106:in 
`parameterize'
...

Alors que j'ai passé le paramètre "éthanol" qui s'est transformé en 
"%E9" dans l'URL provenant d'une application Flex tournant dans un 
plugin Flash. Et lorsque je passe simplement "ethanol", je n'ai pas 
l'erreur. On dirait bien que la transcodification du "%E9" en "é" a 
déconné, mais je ne sais pas à quel niveau.
Posted by Thibaut Barrère (thbar)
on 2009-02-21 13:55
(Received via mailing list)
Hello,

tu utilises activesupport 2.2.2, je crois que parameterize n'existait
pas encore dans cette release.

Je crois que tu as gagné le droit de te rabattre sur diacritics_fu
(github.com/thbar/diacritics_fu/tree).

-- Thibaut
Posted by Chris Gers32 (gers32)
on 2009-06-02 08:42
Thibaut Barrère wrote:
> tu utilises activesupport 2.2.2, je crois que parameterize n'existait
> pas encore dans cette release.
> 

Bonjour Thibaut,

Ca fait un bail, mais j'ai dû laisser tomber le développement pour faire 
de la gestion de projets... Je me suis donc remis au "vrai" travail et 
ai mis à jour mes gems, pour inclure activesupport 2.3.2 ; pourtant, 
lorsque j'essaie d'utiliser "parameterize", j'ai toujours un message 
d'erreur sur la non existence de la fonction "normalize". J'ai trouvé un 
post qui mentionnait le problème et recommandait de le résoudre avec un 
"$KCODE = 'u'" (Unicode). Malheureusement, ça ne change rien pour moi...

Merci de vos suggestions,

Christophe.
Posted by Chris Gers32 (gers32)
on 2009-06-02 09:09
Voici un exemple dans irb. Lorsque l'encodage n'est pas spécifié, la 
fonction "normalize" n'est pas trouvée pour la chaîne de caractères "a b 
c". Puis, lorsque je spécifie l'encodage (UTF8), ça fonctionne avec "a b 
c", mais pas avec "é è ç à". Or, les seuls encodages disponibles sont 
"NONE", "UTF8" et deux encodages japonais "EUC" et "SJIS"...

irb(main):002:0> require 'active_support'
=> true
irb(main):003:0> "a b c".parameterize
NoMethodError: undefined method `normalize' for "a b c":String
        from 
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/inflector.rb:292:in 
`transliterate'
        from 
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/inflector.rb:261:in 
`parameterize'
        from 
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/string/inflections.rb:106:in
 `parameterize'
        from (irb):3
irb(main):004:0> $KCODE = 'u'
=> "u"
irb(main):005:0> "a b c".parameterize
=> #<ActiveSupport::Multibyte::Chars:0x40fc07c @wrapped_string="a-b-c">
irb(main):006:0> "é è ç à".parameterize
NoMethodError: undefined method `normalize' for "\202 \212 \207 
\205":String
        from 
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/inflector.rb:292:in 
`transliterate'
        from 
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/inflector.rb:261:in 
`parameterize'
        from 
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/string/inflections.rb:106:in
 `parameterize'
        from (irb):6
Posted by Cyril Mougel (shingara)
on 2009-06-02 09:29
(Received via mailing list)
Chris Gers32 a écrit :
>         from 
> => "u"
> `parameterize'
>         from 
> c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/string/inflections.rb:106:in
>  `parameterize'
>         from (irb):6
>   
As-tu le fichier :

c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/chars.rb 
<http://api.rubyonrails.org/files/vendor/rails/activesupport/lib/active_support/multibyte/chars_rb.html>

En effet, la méthode
normalize(http://api.rubyonrails.org/classes/ActiveSupport/Multibyte/Chars.html#M000952)
est dans ce fichier.

Sinon peut-être un problème de Windows. Typiquement la méthode qui est
appelé dans ton cas n'est appelé que quand Iconv ne fonctionne pas :(

cf :
http://github.com/rails/rails/blob/196f780e30fcece25e4d09c12f9b9f7374ebed29/activesupport/lib/active_support/inflector.rb#L293

--
Cyril Mougel
http://blog.shingara.fr
Posted by Chris Gers32 (gers32)
on 2009-06-02 09:56
Cyril Mougel wrote:
> En effet, la méthode
> normalize(http://api.rubyonrails.org/classes/ActiveSupport/Multibyte/Chars.html#M000952)
> est dans ce fichier.
> 
> Sinon peut-être un problème de Windows. Typiquement la méthode qui est
> appelé dans ton cas n'est appelé que quand Iconv ne fonctionne pas :(
> 

Bonjour Cyril,

La méthode "normalize" est bien définie dans le fichier que tu décris, 
mais elle ne semble pas fonctionner pour les caractères accentués. J'ai 
repris un exemple dudit fichier, pour illustrer le problème :

irb(main):004:0> require 'active_support'
=> true
irb(main):005:0> $KCODE = 'u'
=> "u"
irb(main):006:0> "The Perfect String ".mb_chars.downcase.strip.normalize
=> #<ActiveSupport::Multibyte::Chars:0x40f117c @wrapped_string="the 
perfect string">
irb(main):007:0> "La Chaîne Parfaite".mb_chars.downcase.strip.normalize
NoMethodError: undefined method `normalize' for "la cha\214ne 
parfaite":String
        from (irb):7

Et pour ce qui est de "iconv", les lettres accentuées sont carrément 
supprimées : Iconv.iconv('ascii//ignore//translit', 'utf-8', 
"éthanol").to_s retourne "thanol"...
Posted by AlSquire (Guest)
on 2009-06-18 01:26
(Received via mailing list)
Attention, une chaîne avec accents tapé dans la ligne de commande de
windows n'est pas traitée de la même manière qu'une même chaîne écrite
dans un fichier par exemple (dans le détail je ne sais pas trop
pourquoi, mais il vaut mieux le savoir quand on fait des essais).

Exemples que j'ai pondu ce matin, et je viens de rajouter le KCODE qui
fait que ça marche bien sous win aussi :
http://gist.github.com/130606

Pas besoin de préciser le KCODE dans le contexte de rails, je pense
qu'il le fait comme un grand.
Posted by Michel Belleville (Guest)
on 2009-06-18 09:45
(Received via mailing list)
Qui dit fichier sous windows sans se préoccuper de l'encodage dit 
encodage
CP1252 par défaut, et le CP ce n'est ni de l'UTF, ni de l'ISO, c'est 
leur
vilaine norme pénible juste à eux pour être pas compatible.

Michel Belleville


2009/6/18 AlSquire <alsquire@gmail.com>
Posted by Thibaut Barrère (thbar)
on 2009-06-18 10:11
(Received via mailing list)
> le CP ce n'est ni de l'UTF, ni de l'ISO, c'est leur vilaine norme pénible juste à eux pour être pas compatible.

Le CP 1252 s'appuyait sur ce qui était disponible à ce moment là de la
standardisation, c'est à dire un draft ANSI, draft qui a ensuite été
amendé pour devenir le latin-1 qu'on connait aujourd'hui, incompatible
sur un certain nombre de points.

C'est toujours la même histoire, pour Microsoft, Google ou Mozilla: ou
bien ils font un pari avant que les drafts soient finalisés et ils
sortent des produits (win95, webkit ou autre), ou ils ne sortent pas
de produits et quelqu'un d'autre les sort à la place :)

-- Thibaut
Posted by Michel Belleville (Guest)
on 2009-06-18 10:28
(Received via mailing list)
Non c'était bien l'ANSI quand il n'y avait que l'ANSI. Et puis il y a eu
l'ISO (oups, loupé le changement de cap) et puis il y a eu l'UTF 
(carramba,
encore raté).

Moi je vois plutôt ça comme ça : il y a les gens qui sortent un bon 
produit
à peu près fini une fois tous les 6-7 ans, avec quelques bugs qui
nécessitent un service pack, ou deux, ou trois, et qui sortent beaucoup 
de
merdes entre temps juste pour occuper l'espace, sans se préoccuper des
standards, et très cher, et d'un autre côté il y a les autres, dont 
certains
font des produits gratuits, open-source, puissants, évolutifs, 
modulables,
et respectueux des standards.

D'où l'absence de comparaison entre par exemple Microsoft et Google ou
Mozilla. Dans les trois, il y en a un qui sera toujours loin derrière 
tant
qu'il se conduira de la même façon.

Michel Belleville


2009/6/18 Thibaut Barrère <thibaut.barrere@gmail.com>
Posted by Michel Belleville (Guest)
on 2009-06-18 10:29
(Received via mailing list)
(bien entendu, quand je dis loin derrière, je parle de la qualité du
produit, pas du fric accumulé)

Michel Belleville


2009/6/18 Michel Belleville <michel.belleville@gmail.com>
Posted by Thibaut Barrère (thbar)
on 2009-06-18 10:46
(Received via mailing list)
> qu'il se conduira de la même façon.
Houla - y'a du lourd pour de la flamewar :)

Je retourne à mon développement Silverlight IronRuby Google Wave Qui
Tourne Dans FireFox (tm).

-- Thibaut
Posted by Chris Gers32 (gers32)
on 2009-06-18 15:24
Au final, j'ai suivi les conseils trouvés ici http://www.dixis.com/?p=48

Plutôt que de convertir des caractères accentués en caractères non 
accentués dans mon application Rails, je les ai finalement gardés et du 
coup, mon problème principal était de passer des accents à une base 
Oracle via une requête SQL. Les problèmes d'encodage ont été résolus 
grâce à l'insertion du code suivant dans application_controller.rb :

class ApplicationController < ActionController::Base
...
...

  before_filter :headers_iso

  def headers_iso
    # make sure the charset matches the default Oracle NLS setting
    headers["content-type"]= "text/xml; charset=windows-1252"
  end
end

Merci,

Christophe.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.