在中文版Windows操作系統上使用GitLab CI Runner的時候,如果命令行的輸出包含中文,則在GitLab中看到的流水線(Pipeline)日志會出現亂碼情況。
為了解決這個問題,可以在Runner的初始化腳本中插入語句“chcp 65001”,將命令行輸出編碼設為UTF-8,之后GitLab的流水線日志就能正常顯示MSBuild的中文輸出了。
具體操作步驟:在GitLab Runner的配置文件config.toml
中,在runners
中的pre_clone_script
和pre_build_script
屬性內添加語句chcp 65001
。示例配置文件如下:
...
[[runners]] executeer = "shell" shell = "powershell" pre_clone_script = "chcp 65001" pre_build_script = "chcp 65001" ...
類似的方法應該可以也解決其他的日志收集器在中文操作系統上出現亂碼的問題。但是,在系統默認命令行窗口中,若使用UTF-8編碼,則文本輸入等可能存在一定的問題,不建議在正常使用命令行時使用UTF-8編碼。