ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)

Hi, is anyone getting this exception with Jekyll 4?

✗ jekyll b --trace
Configuration file: /Users/me/Work/myblog/_config.yml
            Source: /Users/me/Work/myblog
       Destination: /Users/me/Work/myblog/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
         AutoPages: Disabled/Not configured in site.config.
        Pagination: Complete, processed 1 pagination page(s)
  Conversion error: Jekyll::Converters::Markdown encountered an error while converting '_posts/2014-11-11-how-i-create-a-new-rails-project.md':
                    "\x89" from ASCII-8BIT to UTF-8
Traceback (most recent call last):
	33: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/ruby_executable_hooks:24:in `<main>'
	32: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/ruby_executable_hooks:24:in `eval'
	31: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/jekyll:23:in `<main>'
	30: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/jekyll:23:in `load'
	29: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/exe/jekyll:15:in `<top (required)>'
	28: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
	27: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
	26: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
	25: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
	24: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
	23: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program'
	22: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `process_with_graceful_fail'
	21: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `each'
	20: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `block in process_with_graceful_fail'
	19: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:36:in `process'
	18: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:65:in `build'
	17: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:28:in `process_site'
	16: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:76:in `process'
	15: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:201:in `render'
	14: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:507:in `render_docs'
	13: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:507:in `each_value'
	12: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:508:in `block in render_docs'
	11: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:508:in `each'
	10: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:509:in `block (2 levels) in render_docs'
	 9: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:523:in `render_regenerated'
	 8: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:63:in `run'
	 7: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:84:in `render_document'
	 6: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:100:in `convert'
	 5: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:100:in `reduce'
	 4: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:100:in `each'
	 3: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:102:in `block in convert'
	 2: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/converters/markdown.rb:85:in `convert'
	 1: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/cache.rb:109:in `getset'
/Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/cache.rb:88:in `[]': unhandled exception
	42: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/ruby_executable_hooks:24:in `<main>'
	41: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/ruby_executable_hooks:24:in `eval'
	40: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/jekyll:23:in `<main>'
	39: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/bin/jekyll:23:in `load'
	38: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/exe/jekyll:15:in `<top (required)>'
	37: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
	36: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
	35: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
	34: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
	33: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
	32: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program'
	31: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `process_with_graceful_fail'
	30: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `each'
	29: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `block in process_with_graceful_fail'
	28: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:36:in `process'
	27: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:65:in `build'
	26: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/command.rb:28:in `process_site'
	25: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:76:in `process'
	24: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:201:in `render'
	23: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:507:in `render_docs'
	22: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:507:in `each_value'
	21: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:508:in `block in render_docs'
	20: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:508:in `each'
	19: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:509:in `block (2 levels) in render_docs'
	18: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/site.rb:523:in `render_regenerated'
	17: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:63:in `run'
	16: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:84:in `render_document'
	15: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:100:in `convert'
	14: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:100:in `reduce'
	13: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:100:in `each'
	12: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/renderer.rb:102:in `block in convert'
	11: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/converters/markdown.rb:85:in `convert'
	10: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/cache.rb:108:in `getset'
	 9: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/cache.rb:111:in `rescue in getset'
	 8: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/converters/markdown.rb:86:in `block in convert'
	 7: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/converters/markdown/kramdown_parser.rb:40:in `convert'
	 6: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/jekyll-4.0.0/lib/jekyll/converters/markdown/kramdown_parser.rb:40:in `new'
	 5: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/kramdown-2.1.0/lib/kramdown/document.rb:102:in `initialize'
	 4: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/kramdown-2.1.0/lib/kramdown/parser/base.rb:69:in `parse'
	 3: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/kramdown-parser-gfm-1.1.0/lib/kramdown/parser/gfm.rb:56:in `parse'
	 2: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/kramdown-2.1.0/lib/kramdown/parser/kramdown.rb:88:in `parse'
	 1: from /Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/kramdown-2.1.0/lib/kramdown/parser/base.rb:95:in `adapt_source'
/Users/me/.rvm/gems/ruby-2.6.3@myblog_jkl/gems/kramdown-2.1.0/lib/kramdown/parser/base.rb:95:in `encode': "\x89" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)

I’m getting a similar but different error:

Liquid Exception: incompatible character encodings: UTF-8 and ASCII-8BIT in search/index.html

Details here:

Configure locale properly can probably solve this error.

@chalmagean can you link to the repo? And indicate if you are using some accented character, emoji, etc. in the post file.

You can also try make delete the 2nd half if the content on the page and rebuild. And then repeat and repeat until you get to a passing state and can see what character is breaking.

Also if you build your page on Netlify (for easy use of Jekyll 4 without Github Actions) does it build okay there? Wondering if it is specific to your machine or OS or lack of a dev / lib package

Also try upgrade Jekyll as there is at least 4.0.1 and you have 4.0.0

I found Ruby on Rails SO answer for converting the same character by searching “ascii \x89” so you should so the same and see where else the problem is.

One answer says set locale. Do this once off or in .bashrc or .zshrc

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

The other answer say to install rdoc. I recommend user flag to keep it in user gems without needing sudo

gem install rdoc --user-install
gem install rdoc --user-install --all --overwrite

Maybe you can install rdoc with bundler instead so it stays in your Gemfile list.