Esse erro nao tem NADA haver com o seu código…, seu código está corretíssimo, existem inumeras maneiras de resolver esse seu problema, e a sua maneira eh uma delas… mesmo fazendo de outro jeito esse erro VAI acontecer, porque isso eh “problema” do linux…
Então deixa eu tentar de explicar mais uma coisa, o erro “… unmappable character for econding UTF8” está falando que o locale do seu linux está setado para caracteres, como o povo aqui fala, “americano”, logo ele NAO RECONHECE os nossos caracteres, os acentuados. Para que isso aconteca, voce tem que “avisar” ao linux que caracteres ele terá que “ler”, no nosso caso eh o portugues_brasil respeitando a iso 88591 (onde os caracteres acentuados estao), portanto sugiro que voce de os comandos que falei pra voce, ou seja,
export LANG=pt_BR.iso88591
export LC_ALL=pt_BR.iso88591
esses comandos são dados na shell que vc vai compilar seu sistema e toda vez que vc abrir uma shell nova terá que colocar esses comandos, mas caso vc queira deixar isso default, voce coloca isso no seu arquivo .bashrc (arquivo oculto) que você o encontra no seu home “~”, voce coloca da seguinte maneira no final do arquivo
LANG=pt_BR.iso88591
LC_ALL=pt_BR.iso88591
export LANG LC_ALL
Estou certa que depois que vc fizer isso seu sistema pode até da erro, mas certamente sera OUTRO erro.
e mais uma vez, espero que tenha ajudado
beijos