我正在使用Ruby 1.9.1和Rails 2.3.4我的应用程序是处理文本输入
如果我尝试类似的东西(内部引号看起来不同)
text = "”“"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
#<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
Run Code Online (Sandbox Code Playgroud)
我需要使用这些引号,因为用户可能会输入它们,我必须考虑到这一点?
有任何想法吗?
我试图让我的rails应用程序(2.3.5)在Ruby 1.9上运行,我有这个函数在字符串上进行一些转换:
def replace_special_chars(downcase = true)
if downcase
string = self.downcase
else
string = self
end
string.gsub! /á|ã|à|ä|â/, 'a'
string.gsub! /é|è|ë|ê/, 'e'
string.gsub! /í|ì|ï|î/, 'i'
string.gsub! /ó|õ|ò|ô|ö/, 'o'
string.gsub! /ú|ù|ü|û/, 'u'
string.gsub! /ç/, 'c'
string.gsub! /&/, 'e'
string.gsub! /\s/, '-'
string.gsub! /[^a-zA-Z_0-9-]/, ''
string.gsub! /-(-)+/, '-'
string
end
Run Code Online (Sandbox Code Playgroud)
但是当我尝试启动服务器时,我收到了这个错误:
<internal:lib/rubygems/custom_require>:29:in `require':
/Users/.../lib/nzn_string.rb:11: invalid multibyte char (US-ASCII) (SyntaxError)
/Users/.../lib/nzn_string.rb:11: invalid multibyte char (US-ASCII)
/Users/.../lib/nzn_string.rb:11: syntax error, unexpected $end, expecting keyword_end
string.gsub! /á|ã|à|ä|â/, 'a'
^
Run Code Online (Sandbox Code Playgroud)
来自:29:在`require'
在ruby 1.9上执行此操作的正确方法是什么?我不知道我在这里失踪了什么
我的问题是与Rails 3无效的多字节字符(US-ASCII)相似
解决方案,在那里提供确实有效,但我发现这有点愚蠢,包括注释#编码:UTF-8到每个使用非ASCII字符的文件.
在config/application.rb中,我有以下选项:
# Configure the default encoding used in templates for Ruby 1.9.
config.encoding = "utf-8"
Run Code Online (Sandbox Code Playgroud)
但是,它没有帮助.
也许,针对此类情况提供了一些其他全局配置选项?
我正在 rbenv 管理下运行 ruby 2.0.0p247、rails 4.0.1。当我第一次尝试启动 Rails Console 时,出现错误,未找到 readline。我安装了 rb-readline gem 并添加到 gemfile 中,如下所示gem 'rb-readline', '0.4.2'。Adter 捆绑更新控制台变得能够运行。但是,当我按向上箭头调用上一个命令时,控制台崩溃并出现以下错误:
/home/clergyman/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in `_rl_dispatch_subseq 中的块' :UTF->8 中的无效字节序列(ArgumentError)
一个常见的解决方案是尝试使用 0.5.0 等更高版本的 'rb-readline' gem,但是如果以这种方式更改 gem 版本,我什至无法启动控制台,它会崩溃,就好像未安装 readline 一样。
我知道这里有很多类似的问题,但到目前为止我的 Rails/Ruby 配置还没有成功。我将不胜感激任何帮助,提前致谢!在参考其他类似问题之前,请先关注 ruby/rails 版本。
我正在运行rake db:seed来填充数据库中的i18n数据,但它无法识别i18n字符.我得到的错误是 -
耙子流产了!
$ HOME/db/seeds.rb:9:无效的多字节字符(US-ASCII)
$ HOME/db/seeds.rb:9:无效的多字节字符(US-ASCII)
$ HOME/db/seeds.rb:9:语法错误,意外$ end,期待'}'
在调用rake之前,是否需要将本机语言字符串转换为UTF-8字符?