0

问题

我有一个 Rails 3.2.13 项目,其中一些源文件包含带有非 ASCII 字符的字符串(主要是 åäö)。

当我部署到登台服务器时,一切都在编码错误的风暴中失败了。感谢 StackOverflow,我找到并安装了magic_encoding gem 来# -*- encoding : utf-8 -*-为每个源文件添加注释。

现在,当我尝试加载页面时出现此错误:

.../app/helpers/venues_helper.rb:25:语法错误,意外的keyword_end,期待输入结束

我试过的

我意识到我一直在我的开发机器上使用 Ruby 2.0.0,在登台服务器上使用 1.9.3(我知道,我知道),在部署时首先出现了整个 UTF-8 问题。也许在我的开发环境中切换到 1.9.3 会有所帮助?没有。

我想到我实际上end在错误的地方得到了一个。所以我删除了所有内容,但是:

# -*- encoding : utf-8 -*-
module VenuesHelper
end

没有。同样的错误。

我尝试替换文件中的每个空白字符,以防其中一个不是空格或换行符。没有。

我尝试删除魔术评论,以防它导致问题。成功!我不再收到此语法错误,但我被我一开始就打算修复的中断登台服务器所困。:C

我所希望的

解释造成这种情况的原因以及将来避免这种情况的方法。

我的所有其他文件都可以使用魔术注释,即使没有实际内容,这个特定文件也会失败。我勒个去?

4

1 回答 1

1

正确。我用手重新编写了整个文件,显然行中有一个不可打印的字符module VenuesHelper破坏了。

至少现在一切正常,并且git diff告诉我这条特定的行虽然看似没有变化,但有所不同。

我想我将不得不发布一个新问题,关于如何在您不想要它们的地方最好地识别不间断空间等......

于 2013-07-29T13:24:46.157 回答