2014-04-12 43 views
1

我想在Cygwin和Eclipse下开发一个rails应用程序。我使用Ruby 1.9和Rails 4.1。在Cygwin下的Rails编码

我确定,使用recode,我所有的文件都有Windows-1252编码,我的Eclipse项目也使用相同的编码。我也试过用在两个地方UTF8但这个错误不断显示出来:

incompatible encoding regexp match (Windows-1252 regexp with UTF-8 string) 

class ApplicationController < ActionController::Base 
# Prevent CSRF attacks by raising an exception. 
# For APIs, you may want to use :null_session instead. 
protect_from_forgery with: :exception 

这是关系到我的Rails /红宝石(读,Rails的源文件在Windows编码为而我的代码是UTF -8)在Cygwin下安装?

Rails Stacktrace

+0

有没有像“不兼容的编码正则表达式匹配(Windows的1252正则表达式使用UTF-8串)”中的'stacktrace'发布 – bjhaid

+0

这是抛出的异常, stactrace是发起异常的呼叫。 –

+0

@PedroMontotoGarcía你还有问题吗?如果没有,请在下面选择一个答案,提供有用的答案,或者提交您自己的答案并提供详细的解释。 – onebree

回答

0

添加

# encoding: utf-8

到每一个Ruby源文件

+0

不,它不起作用。我相信问题来自Windows-1252中的Rails gem,我的代码是UTF-8。 我已经更新了OP。 –

+0

根据@Pedro计划如何运行他的程序,在Unix系统上添加这样一行只会是多余的。如果有很多源文件,它也会很痛苦。在这样的时代,最好调整用户环境,而不是程序。 – onebree

0

的顶部,我发现这个链接,引导您通过Cygwin在Windows上安装导轨。我知道你已经安装了它,但它包括让Cygwin识别UTF-8编码。

http://collaborate.je/2014/08/setting-ruby-rails-windows-7-via-cygwin/

我不知道,如果你使用的是在工作中或家中的Windows。如果是后者,你可能需要花一点时间在VirtualBox上安装Ubuntu。您只需要几GB的空间,整个Linux操作系统就像Windows中的应用一样运行。这是Rails应用程序的理想选择,许多教程都推荐使用Unix,甚至更多的公司使用Unix来编程和运行服务器。如果你不知道,Linux属于Unix类别,也包括Mac。Windows在某些语言中很难工作,因为它的内核和目录结构的设计与Unix不同,但是, ,我相信你知道这一点。:-)