Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

erro de encoding ruby 1.9.2 #20

Closed
eduresende opened this issue Jun 14, 2011 · 9 comments
Closed

erro de encoding ruby 1.9.2 #20

eduresende opened this issue Jun 14, 2011 · 9 comments

Comments

@eduresende
Copy link

logo ao rodar eu tenho o erro:
SyntaxError in HomeController#index
... @boleto.instrucao1 = "Pagável na rede bancária até a ..

quando coloco no inicio do controller:

encoding: utf-8

a pagina abre ok, mas ao mandar gerar o boleto, tenho o erro:
Encoding::UndefinedConversionError in HomeController#gerar_boleto
"\xE9" from ASCII-8BIT to UTF-8

@eduresende
Copy link
Author

parece ser um problema com rghost

vendo o full trace do erro:

rghost (0.8.7.5) lib/rghost/ruby_ghost_engine.rb:61:in write' rghost (0.8.7.5) lib/rghost/ruby_ghost_engine.rb:61:inputs'
rghost (0.8.7.5) lib/rghost/ruby_ghost_engine.rb:61:in render' rghost (0.8.7.5) lib/rghost/document.rb:237:inrender'
rghost (0.8.7.5) lib/rghost/document.rb:257:in render_stream' brcobranca (3.0.0) lib/brcobranca/boleto/template/rghost.rb:86:inmodelo_generico'
brcobranca (3.0.0) lib/brcobranca/boleto/template/rghost.rb:33:in to' app/controllers/home_controller.rb:76:ingerar_boleto'
actionpack (3.0.3) lib/action_controller/metal/implicit_render.rb:4:in send_action' actionpack (3.0.3) lib/abstract_controller/base.rb:151:inprocess_action'

@kivanio
Copy link
Owner

kivanio commented Jun 14, 2011

Já temos um patch aplicado ao master para resolver isso feito pelo Clair Cardoso 2ab8629

Você pode testar com o master no seu gemfile e nos dar um feedback se resolve seu problema.

@eduresende
Copy link
Author

Kivanio, obrigado pela resposta,

fiz o que voce falou

gem 'brcobranca', :git => 'git://github.com/kivanio/brcobranca'

o problema continua.

@DiogoAndre
Copy link

tenta colocar

  Brcobranca.setup do |config|
        config.external_encoding = 'ascii-8bit'
  end

em seu environment

@cncardoso
Copy link
Contributor

Além da configuração acima, tem que usar a versão do rghost acima da 0.8.7.6 onde foi aplicado o patch para permitir esta configuração.

Teste alterando o rghost no gemfile para:
gem "rghost", "0.8.7.6"

@MarceloCajueiro
Copy link

Alguma resolução definitiva do problema?
Mesmo após os ajustes citados, continua com o mesmo problema.

@rosalin
Copy link

rosalin commented Sep 28, 2011

aqui eu resolvi colocando no application.rb

RGhost::Config::GS[:external_encoding] = 'ascii-8bit'

@cncardoso
Copy link
Contributor

O exemplo abaixo é bem detalhado pois podem ser problemas diferentes em cada projeto.
Passo a passo para isolar o problema utilizando o brcobranca-exemplo:

  • Confirmar com ruby -v se a versão é mesmo do 1.9.2
  • Clonar o repositório com exemplo do brcobranca e instalar as gems
    git clone https://github.com/kivanio/brcobranca_exemplo
    cd brcobranca_exemplo
    bundle install
    
  • Executar o exemplo com rails s e verificar que deve aparecer um erro semelhante ao abaixo na home (localhost:3000):
    SyntaxError in HomeController#index
    (...) brcobranca_exemplo/app/controllers/home_controller.rb:65: invalid multibyte char (US-ASCII)
    
  • Este erro acontece pois o arquivo home_controller.rb não tem a instrução utf-8 em seu início. Colocar no início do arquivo:
    # encoding: utf-8
    
  • Testar novamente - deve aparecer a tela com as opções de geração de boleto. Clicar no botão "Gerar".
  • Aparece o erro abaixo. Notar que agora é o erro de conversão não definida (Undefined Conversion Error) - que tem a ver com o "external encoding"
    Encoding::UndefinedConversionError in HomeController#gerar_boleto
    "\xE9" from ASCII-8BIT to UTF-8
    
  • Alterar o gemfile, alterando o rghost para versão superior ou igual a "0.8.7.6" (que possui o patch com a configuração para resolver o problema "external encoding" e também para utilizar a última versão do brcobranca que está no github (onde foi aplicado um patch para utilizar a nova configuração do rghost). O gemfile fica assim:
    source 'http://rubygems.org'
    gem 'rails', '3.0.3'
    gem 'sqlite3'
    gem "rghost", ">=0.8.7.6"
    gem "rghost_barcode"
    gem "parseline"
    gem "brcobranca", :git => "git://github.com/kivanio/brcobranca.git", :branch => "master"
    # gem "brcobranca", '3.0.0'
    
  • Atualizar as gems
    bundle install
  • Criar em config/initializers o arquivo brcobranca.rb com o seguinte conteúdo: (ou opcionalmente incluir nos arquivos de environments)
    Brcobranca.setup do |config|
      config.external_encoding = 'ascii-8bit'
    end
    
  • Ctrl-c para cancelar o teste anterior e executar novamente ( rails s)
  • Gerar um boleto e verificar que os acentos aparecem corretamente.

@mhfs
Copy link

mhfs commented Feb 12, 2012

@cncardoso obrigado pela configuração de external_encoding, funciona perfeitamente.

@kivanio alguma chance de um novo release que inclua essas mudanças?

[]s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants