Jekyll: 解決Win10系統Code Page錯誤問題

Windows 版本: 10.0
Ruby 版本: 2.5.1
Gem 版本: 2.7.6
Jekyll 版本: 3.8.3
Bundle 版本: 1.16.2
Powershell 版本: 5.1css

Code Page: In computing, a code page is a table of values that describes the character set used for encoding a particular set of characters, usually combined with a number of control characters.

從Wiki的描述來看,Code Page至關於字符編碼集合構成的頁表。shell

那麼,在Win10系統中安裝Jekyll容易出現Code Page的錯誤,亦即不一樣的字符集編碼不兼容windows

錯誤表現:
運行:bundle exec jekyll serve
報錯:
Conversion error: JekyllConverters::Scss encountered an error while converting 'assets/css/main.scss':
Invalid GBK character "xE2" on line 54編碼

查看當前系統的Code Page方法有兩種:code

  1. 打開Powershell,運行chcp,顯式Active code page: 65001,即Code Page爲65001 (UTF-8),此時Jekyll能夠正常運行;
  2. 打開Powershell,右鍵上部標題欄,左鍵點擊「屬性」 --> 點擊「選項」, 在選項頁面查看當前代碼頁;

若查看到的Code Page爲:936 (GBK),則會與Jekyll出現字符集不兼容的問題。get

修改當前系統的Code Page方法:scss

  1. 非長久方法:直接在Powershell中運行chcp 65001,可是退出Powershell以後,將恢復默認的Code Page,故而每次在運行bundle exec jekyll serve命令時候,都須要進行chcp 65001
  2. 長久方法:修改Powershell配置文件。it

    • 運行:Get-ExecutionPolicy 獲取當前Powershell執行策略等級;
    • 若等級爲Restricted或AllSigned,運行Set-ExecutionPolicy RemoteSigned修改策略等級爲RemoteSigned
    • 建立Powershell啓動加載的腳本。New-Item -Path $Profile -ItemType file -Force
    • 打開建立的腳本文件,將chcp 65001命令寫入,而後保存退出文件;
    • 重啓Powershell,此後Powershell每次啓動即會運行chcp 65001
    • 若不想每次啓動Powershell顯式"Active code page: 65001",可改寫命令爲chcp 65001 >$null,將輸出丟棄;

以上的解決方案,主要參考setup-jekyll-on-windowsio

相關文章
相關標籤/搜索