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頭部經常會出現三個問題:

  1. 三短線前面不能有空格
  2. “名: 值”對里冒號后面要有空格
  3. 回車后不要有Tab符
  4. 表示數組成員開始的-號后面要有空格

在notepad++中開啟“顯示所有字符”選項后,就可以看清空格和Tab符了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM