Não consigo descobrir onde minha codificação Ruby 1.9 String está ficando bagunçada
Pergunta
Em algum lugar ao longo da linha do banco de dados ao aplicativo, este:
sauté
está sendo transformado nisso:
sauté
Estou usando Ramaze + Rack + MySQL. Eu tenho um plug-in force_encoding, então a codificação na string é UTF-8. Se eu visualizar o registro no shell do banco de dados, parece bom. O charset padrão na tabela é UTF8 e o próprio campo é "texto". A codificação na minha conexão com o banco de dados é UTF8. Além disso, no meu MacBook, tudo funciona muito bem. Está no meu servidor Ubuntu que está sendo mutilado. Espero que alguém reconheça isso e me diga que é unicode se transformar em ASCII, depois de volta ou algo assim.
Solução
Provavelmente, seu local difere. Execute o locale
comando em ambos e veja qual é a diferença. Suponho que você veja um problema quando obtém resultados de MySQL, que é um problema comum com 1.9 de acordo com os resultados do Google: http://www.google.com/search?q=mysql+Ruby+1.9+Encoding.