Convertendo um texto ISO-8859-1 para UTF-8 em Ruby

No Ruby 1.9 uma coisa que você pode ter certeza é que terá dor de cabeça é com Encoding. Faça uma busca rápida no google por “ruby 1.9 encoding” e você vai entender do que eu estou falando.

Hoje eu tive que converter um conteúdo que estava em iso-8859-1 para utf-8 e recebi o seguinte erro:

incompatible character encodings: UTF-8 and ISO-8859-1

Para resolver isso eu usei:

"meu texto".encode("UTF-8", undef: :replace, invalid: :replace)

E o problema foi resolvido. Segundo a documentação do Ruby 1.9 o parâmetro :invalid com o valor :replace, faz com que o método encode substitua o carácter inválido. O padrão é gerar uma exceção.

Nova sintaxe para fazer Html Encoding com Asp.Net 4 e Asp.Net MVC 2

Html Encoding faz parte de todo desenvolvimento web, principalmente para previnir ataques de Cross Site Scripting (XSS) – quem não sabe o que é, recomendo ler esse artigo.

Até a versão 3.5 no Asp.Net para fazer Html Enconding tinhamos que fazer algo assim:

<%= Server.HtmlEncode(algum_valor) %>

E no Asp.Net MVC algo assim:

<%= Html.Encode(model.Valor) %>

Isso sempre funcionou, mas agora existe uma nova possibilidade, que na minha opinião torna isso ainda mais simples:

<%: mode.Valor %>

É só trocar o sinal de = pelo sinal : e automaticamente o encoding será realizado.

E isso vale também para os outros Html helpers do MVC, por exemplo:

<%: Html.TexboxFor(m => m.Valor) %>

No código acima, o texto dentro do textbox já sairá codificado.