我的 jekyll 站点无法构建:Liquid Exception: incompatible character encodings

Posted

技术标签:

【中文标题】我的 jekyll 站点无法构建:Liquid Exception: incompatible character encodings【英文标题】:My jekyll site can't build: Liquid Exception: incompatible character encodings 【发布时间】:2012-10-20 05:32:30 【问题描述】:

我不知道我改变了什么,但是今天我不能再用 jekyll 成功地建立我的网站的首页了。它现在抱怨:

[2012-10-30 14:22:10] regeneration: 1 files changed
Liquid Exception: incompatible character encodings: UTF-8 and ASCII-8BIT in index.html

而且我不知道如何解决这个问题。我相信它是通过我在首页 index.html 上创建的一个帖子循环引入的,其中我包含了最后“n”个帖子的摘录。我对我的 _posts/ 目录使用了 file(1),并且确实有一些混合:

_posts/2012-08-10-canned-responses-your-silent-partner.md:    UTF-8 Unicode English text, with very long lines
_posts/2012-08-21-alternate-ssh-for-osx.md:                   UTF-8 Unicode English text, with very long lines
_posts/2012-08-21-appus-interruptus.md:                       ASCII English text
_posts/2012-10-25-emoryfocuslight.md:                         ASCII English text
_posts/2012-10-28-distributed-social-networking-with-tent.md: ASCII English text, with very long lines

不过,我不确定这是否是我的问题。我使用 vim 和 bbedit 编辑这些文件,它们存储在 Dropbox 中(我在我的 Dropbox 文件夹中构建/暂存,但在其他地方发布)。我的大部分写作/编辑都是在 OS X 上完成的。

当我搜索此错误消息时,我得到了很多关于 rails 应用程序或强制 ruby​​ gem 使用特定编码的结果,我不知道这是否相关甚至对我有帮助。很想瞄准正确的方向或被告知如何解决这种情况。这是一种可悲的状态!

【问题讨论】:

我经常遇到这种情况,并希望看到一个看似有意义的答案。 截至 2019 年,我仍然收到此错误。如果我使用 --source DIR 选项,enocding: utf-8chcp 65001 都不起作用。 【参考方案1】:

解决方法是使用配置

Jekyll Configuration

例子

encoding: utf-8

No mention of UTF fix

【讨论】:

【参考方案2】:

此外,您可能需要将控制台窗口的代码页更改为 UTF-8,以防在站点生成过程中出现“Liquid Exception: Incompatible character encoding”错误。可以通过以下命令完成:

chcp 65001

(来自 jekyll“Windows 安装页面”:http://jekyllrb.com/docs/windows/)

【讨论】:

【参考方案3】:

我最近一直在为同样的问题苦苦挣扎,终于找到了根本原因。

我浏览了所有帖子文件,发现一些旧帖子中的标题问题包含以下内容:

title: !binary | mime encoded string

可能是我用过的 Wordpress 迁移脚本, 将 latin1 字符串编码为 YAML 中的 !binary 和 this 在我的情况下导致“不兼容的字符编码”错误。

我用正确的 UTF-8 字符串替换了那些,之后一切顺利。

【讨论】:

【参考方案4】:

听起来很愚蠢,但重新安装 Jekyll。然后尝试重新编译您的网站。

有一个快速的谷歌搜索,记住这些不是 Jekyll 而是 ruby​​ 非常相似。

ruby 1.9 + sinatra incompatible character encodings: ASCII-8BIT and UTF-8

http://www.ruby-forum.com/topic/206925

您在_config 中将markdown 设置为什么?

【讨论】:

以上是关于我的 jekyll 站点无法构建:Liquid Exception: incompatible character encodings的主要内容,如果未能解决你的问题,请参考以下文章

带有 Jekyll 和 Liquid 的排序导航菜单

Jekyll/Liquid 模板:如何按年份对博客文章进行分组?

使用 Liquid 标记在 Jekyll 中获取今天的日期

Windows环境下Jekyll+Github搭建个人博客

在 Jekyll/Liquid 和 pygments 的 html 问题中突出显示

Jekyll x Liquid: 文章置顶功能的实现