私はRuby 1.9.1とRailsを使用しています。2.3.4私のアプリケーションはテキスト入力を処理します
次のようなものを試してみると(内側の引用符が異なって見える)
text = "”“"
次のエラーが表示されます。
#<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
ユーザーが入力する可能性があるため、これらの引用符を使用する必要があり、それを考慮する必要がありますか?
何か案は?
非ASCII文字を使用するスクリプトに魔法のコメントを追加しようとしましたか?スクリプトの上に配置する必要があります。
#!/bin/env Ruby
# encoding: utf-8
それは私にとって魅力的でした。
プロジェクトのすべてのソースファイルに簡単にマジックコメントを追加したい場合は、 magic_encoding
gemを使用できます
Sudo gem install magic_encoding
次に、ターミナルでアプリのルートからmagic_encoding
を呼び出すだけです。
私は自分のソリューションを追加したいだけです:
ö、ü、äなどのドイツ語のウムラウトを使用していますが、同じエラーが発生しました。
@ Jarek Zmudzinskiがその仕組みを説明したところですが、これが私のものです。
このコードをコントローラーの上部に追加します:# encoding: UTF-8
(たとえば、ウムラウトでフラッシュメッセージを使用する場合)
私のコントローラーの例:
# encoding: UTF-8
class UserController < ApplicationController
これで、ö、ä、ü、ß、 ""などを使用できます。
Ruby 2.0の時点で# encoding: utf-8
を追加する必要がないことに注意してください。 UTF-8は自動的に検出されます。
これらの二重引用符は、ASCII文字ではありません。エラーメッセージは、それらが「マルチバイト」であることについて誤解を招きます。
それは私のために働いた:
$ export LC_ALL=en_US.UTF-8
$ export LANG=en_US.UTF-8