Estou usando Ruby 1.9.1 com Rails 2.3.4 Meu aplicativo é para lidar com entrada de texto
Se eu tentar algo como (as aspas internas parecem diferentes)
text = "”“"
Estou tendo o erro a seguir:
#<SyntaxError: /Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: syntax error, unexpected $end, expecting keyword_end
Preciso usar essas aspas, pois os usuários podem inseri-las e eu tenho que dar conta disso.
Alguma ideia?
Respostas:
Você tentou adicionar um comentário mágico no script em que você usa caracteres não ASCII? Deve ir no topo do script.
Funcionou para mim como um encanto.
fonte
#!/bin/env ruby
não é necessário, a menos que você esteja executando o script na linha de comando como um executável. A# encoding
linha funciona por si só.# encoding: utf-8
. É final de 2013 e ainda temos que jogar este jogo. Espere, telefone tocando ... Era 2033, eles ligaram para dizer que ainda tocavam. Oh bem, obrigado por me lembrar, Jarek Zmudzinski a partir de 2010.Se você deseja adicionar comentários mágicos em todos os arquivos de origem de um projeto com facilidade, use a
magic_encoding
gemabasta ligar
magic_encoding
no terminal a partir da raiz do seu aplicativo.fonte
magic_encoding
é apenas uma ferramenta de linha de comando, não uma dependência do projeto.Eu só quero adicionar minha solução:
eu uso tremas alemães como ö, ü, ä e obtive o mesmo erro.
@Jarek Zmudzinski acabou de lhe dizer como funciona, mas aqui está o meu:
Adicione este código à parte superior do seu controlador:
# encoding: UTF-8
(por exemplo, para usar mensagens instantâneas com tremas)
exemplo do meu controlador:
Agora você pode usar ö, ä, ü, ß, "" etc.
fonte
Essas aspas duplas inclinadas não são caracteres ASCII. A mensagem de erro é enganosa sobre eles serem 'multibyte'.
fonte
Apenas observe que, a partir do Ruby 2.0, não há necessidade de adicionar
# encoding: utf-8
. UTF-8 é detectado automaticamente.fonte
Isso funcionou para mim:
fonte