Eu tentei usar o encoding: utf8 no database.yml, mas para o sql server
não funciona. tentei então um helper para a classe string com o
seguinte código

-----------------------------------------------------------code starts
here-----------------------------------------------------------------------

class String
  # Returns a valid DateTime object if the object can be converted
according to +format+, nil otherwise.
  # FIXME: Corrigir o erro de validação em colunas contendo data +
hora.

  gem 'chardet'
  require 'UniversalDetector'

  def parse_date(format =
ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS[:default])
    begin
      DateTime.strptime(self, format)
    rescue ArgumentError
    end
  end

  def to_utf8
     @encode_type = UniversalDetector::chardet(self)["encoding"]
#detects the str encoding
     Iconv.iconv("UTF-8", @encode_type, self).to_s  #converts the
current encoding to UTF-8 of the present string
  end

end

-----------------------------------------------------------code ends
here-----------------------------------------------------------------------

O chardet é uma gem que pode retornar o tipo de codificação utilizada
na string, o tipo de codificação retornado para o
SQL_latin1_genreal_CP1_CI_AS é o ISO-8859-5 e o iconv consegue passar
a string para utf8, porém os resultados ainda não são satisfatórios
pois os caracteres acentuados e as cedilhas não são exibidos
corretamente. Veja abaixo:

O que deveria exibir:

Fundação Ecumênica de Proteção ao Excepcional - PARANC

está exibindo:

Fundaчуo Ecumъnica de Proteчуo ao Excepcional - PARANС

Sinto que estou chegando perto, alguém sabe como prosseguir deste
ponto?

Desde já agradeço
Edu

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to