Rails 预编译错误(无效的 UTF-8 字节序列)

Posted

技术标签:

【中文标题】Rails 预编译错误(无效的 UTF-8 字节序列)【英文标题】:Rails precompiling error (invalid UTF-8 byte sequence) 【发布时间】:2013-01-17 20:44:57 【问题描述】:

我不小心在 assets/images 中放了一个 js 文件,现在即使我删除了 js 文件,heroku 也不让我预编译我的资源。

这是我收到的错误消息

AssetSync: YAML file found /tmp/build_326asn5xl82tm/config/asset_sync.yml settings will be merged into the configuration
       rake aborted!
       /tmp/build_326asn5xl82tm/app/assets/images/images/index_solid.js has a invalid UTF-8 byte sequence
       /tmp/build_326asn5xl82tm/vendor/bundle/ruby/1.9.1/gems/sprockets-2.2.2/lib/sprockets/utils.rb:19:in `block (2 levels) in read_unicode'

【问题讨论】:

你应该试着清空你的 /tmp/ 目录 我试过了。仍然收到相同的错误消息 【参考方案1】:

尝试进入 Heroku bash 并使用 rm 删除文件。

heroku run bash

【讨论】:

我试过了。它说没有这样的文件或目录。我删除了应用程序文件夹中的所有文件,但错误仍然存​​在。【参考方案2】:

您可以查看几个选项。此类错误通常是由于 yaml 文件中存在非 ASCII 字符(如 Ñ)。

我想我记得运行过这个错误,最后我只是删除了非 ASCII 字符。在js文件中。

有时可以通过安装magic_encoding gem 并在文件顶部使用# encoding: utf-8 来解决此类错误。但是,鉴于错误,我认为它不会起作用

【讨论】:

以上是关于Rails 预编译错误(无效的 UTF-8 字节序列)的主要内容,如果未能解决你的问题,请参考以下文章

Ruby/Rails CSV 解析,UTF-8 中的无效字节序列

Ruby on Rails - 来自 Paypal 的参数:utf-8 中的无效字节序列

Ruby on Rails“由于bot而导致的UTF-8中无效的字节序列”

编码 4 字节 UTF-8 字符 ????从 Rails 到 JSON 产生无效字符

CSS中的Rails预编译错误

Rails:当我运行 rake db:seed 时,US-ASCII 中的字节序列无效(参数错误)