Jekyll在Windows下面中文编码问题解决方案
在windows下使用jekyll时经常会遇到字符集错误,比如遇到提示Liquid error: incompatible character encodings: UTF-8 and GBK或下面这样类似的错误提醒 本文将介绍几种解决方案
E:\GitHub\medesky.github.com>jekyll serve Configuration file: E:/GitHub/medesky.github.com/_config.yml Deprecation: Auto-regeneration can no longer be set from your configurati on file(s). Use the --watch/-w command-line option instead. Source: E:/GitHub/medesky.github.com Destination: E:/GitHub/medesky.github.com/_site Generating... Error reading file E:/GitHub/medesky.github.com/_layouts/def ault.html: invalid byte sequence in GBK Error reading file E:/GitHub/medesky.github.com/index.html: invalid byte sequenc e in GBK Liquid Exception: invalid byte sequence in GBK in default.html error: invalid byte sequence in GBK. Use --trace to view backtrace
1、编辑convertible.rb文件
编辑 E:\Ruby200\lib\ruby\gems\2.0.0\gems\jekyll-1.0.3\lib\jekyll目录下的convertible.rb文件 你可以搜索convertible.rb文件 修改配置文件之类的 建议先备份一下 这里不备份没事的哈 因为修改很简单 在大概第31行(你可以搜索File.read)的位置处将
self.content = File.read(File.join(base, name))
改为
self.content = File.read(File.join(base, name),:encoding=>"utf-8")
然后重新执行你之前的命令 如果还是提醒类似的错我的话 仔细看下错误提醒的编码是不是从变为UTF-8了 不用急将您的文档格式改为utf-8无BOM就好了
2、 所有文档使用utf-8无BOM格式
可以使用Notepad++进行转换 顶部菜单 格式->转为UTF-8无BOM编码格式
3、使用Unix换行符
这里有个技巧,在notepad++中,可以开启“显示所有字符”选项,这样就可以看出文档用的是Windows的换行符还是Unix的换行符。
在这种模式下,Windows的换行符显示的是CR
,Unix的换行符显示的是LF
4、注意YAML头部的格式
模板文件的元数据以YAML的格式展现,YAML头部经常会出现三个问题:
- 三短线前面不能有空格
- “名: 值”对里冒号后面要有空格
- 回车后不要有Tab符
- 表示数组成员开始的
-
号后面要有空格
在notepad++中开启“显示所有字符”选项后,就可以看清空格和Tab符了
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· Ai满嘴顺口溜,想考研?浪费我几个小时
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想