Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Encoding Ruby

Olá para todos,

ao tentar executar os códigos no terminal, me era apresentado a mensagem de erro:

guilherme@GolfettoPC:~/Codigos/Ruby$ ruby forca.rb
forca.rb:3: invalid multibyte char (US-ASCII)
forca.rb:3: invalid multibyte char (US-ASCII)

em buscar pela interwebs, encontrei que ao adicionar o codigo abaixo resolvia o problema de Encoding

#!/bin/env ruby
# encoding: utf-8

Estranho que eu não notei se o instrutor também colocou isso nos códigos feitos em vídeo, também verifiquei que o Save with enconding estava setado no UFT-8.

gostaria de entender o por quê isso acontece

Espero que minha dúvida possa servir de ajuda a todos.

obrigado.

1 resposta
solução!

Todos os arquivos em Ruby usam o encoding US-ASCII.

Quando você usa um encoding diferente nas suas strings, você vai receber esse erro. Muito provavelmente foi um acento ou um "çedilha" do pt_BR.

Uma solução é esse trecho de código que você colou, que diz pro Ruby "Cara, vou usar uma parada diferente aqui, vê se não me enche", ou usar a sudo gem install magic_encoding, colocando magic_encoding na primeira linha do seu app (que no nosso caso é um arquivo só mesmo).

Mas, você só recebe esse erro se rodar o programa pela linha de comando, como um executável. De outra maneira, você não deve receber esse erro.