J'utilise Ruby 1.9.1 avec Rails 2.3.4. Mon application est destinée à gérer la saisie de texte
Si j'essaie quelque chose comme (les guillemets à l'intérieur sont différents)
text = "”“"
Je reçois l'erreur suivante:
#<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
Je dois utiliser ces guillemets pour que les utilisateurs puissent les saisir et je dois en rendre compte?
Des idées?
Avez-vous essayé d'ajouter un commentaire magique dans le script où vous utilisez des caractères non-ASCII? Il devrait aller en haut du script.
#!/bin/env Ruby
# encoding: utf-8
Cela a fonctionné pour moi comme un charme.
Si vous souhaitez ajouter facilement des commentaires magiques sur tous les fichiers sources d'un projet, vous pouvez utiliser le magic_encoding
bijou
Sudo gem install magic_encoding
alors appelez simplement magic_encoding
dans le terminal à partir de la racine de votre application.
Je veux juste ajouter ma solution:
J'utilise des trémas allemands comme ö, ü, ä et j'ai la même erreur.
@ Jarek Zmudzinski vient de vous dire comment cela fonctionne, mais voici le mien:
Ajoutez ce code en haut de votre contrôleur: # encoding: UTF-8
(par exemple, utiliser un message flash avec des trémas)
exemple de mon contrôleur:
# encoding: UTF-8
class UserController < ApplicationController
Vous pouvez maintenant utiliser ö, ä, ü, ß, "", etc.
Juste une note qui à partir de Ruby 2.0 il n’est pas nécessaire d’ajouter # encoding: utf-8
. UTF-8 est automatiquement détecté.
Ces guillemets en biais ne sont pas des caractères ASCII. Le message d'erreur est trompeur en ce qu'ils sont "multi-octets".
Cela a fonctionné pour moi:
$ export LC_ALL=en_US.UTF-8
$ export LANG=en_US.UTF-8