When Sass-generated stylesheets print a Encoding::CompatibilityError

Updated . Posted . Visible to the public.

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.

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.

Henning Koch
Last edit
Martin Straub
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2014-10-23 11:05)