Read more

When Sass-generated stylesheets print a Encoding::CompatibilityError

Henning Koch
October 23, 2014Software engineer at makandra GmbH

We upgraded a Rails 2 application to Rails 3.2 and Ruby 2.1, changed the mysql adapter from mysql to mysql2, but did not activitate the asset pipeline. Instead we used Sass the old-school way (stylesheets in public/sass/*.sass) and relied on stylesheet_link_tag to activate the Sass compiler.

Illustration web development

Do you need DevOps-experts?

Your development team has a full backlog? No time for infrastructure architecture? Our DevOps team is ready to support you!

  • We build reliable cloud solutions with Infrastructure as code
  • We are experts in security, Linux and databases
  • We support your dev team to perform
Read more Show archive.org snapshot

Now all Sass-generated stylesheets inserted the following text into body:before:

Encoding::CompatibilityError: incompatible character encodings: UTF-8 and ASCII-8BIT

I could get rid of this by removing all generated .css files in public and clearing the tmp/sass-cache directory.

When this didn't help, try do add these following two lines above YourAppName::Application.initialize! in your environment.rb:

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

Note that this error can also be caused by other things during an upgrade from Ruby 1.8.7 to something higher. See Google.

Posted by Henning Koch to makandra dev (2014-10-23 13:05)