You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境GitLab CI/CD流水线中UTF-8特殊字符处理异常求助

Windows环境GitLab CI/CD流水线中UTF-8特殊字符处理异常求助

我在GitLab里通过流水线创建合并请求时遇到了特殊字符编码的问题:当我在.gitlab-ci.yml里传入äöüß这类特殊字符给Python脚本,最终生成的合并请求里这些字符会变成乱码├ñ├╢├╝├ƒ,而且在Python脚本里打印输入参数还会触发编码错误,实在搞不懂哪里出问题了,求大家帮忙分析下!


我的.gitlab-ci.yml配置

test-job:
  stage: test
  script:
    - python script.py -Test "äöüß"
  
  tags:
    - shell:powershell
    - tools:python

对应的Python脚本script.py

import argparse
import os
import gitlab

# arguments
parser = argparse.ArgumentParser()
parser.add_argument("-Test", type=str, required=True)
args = parser.parse_args()

# gitlab project
gl = gitlab.Gitlab("https://xxx/", private_token=os.getenv("xxx"), ssl_verify=os.getenv("GITLAB_SSL_CERT"))
project = gl.projects.get(os.getenv("CI_PROJECT_ID"))

# create test merge request
mr = project.mergerequests.create({
    "source_branch": os.getenv("CI_COMMIT_BRANCH"),
    "target_branch": "master",
    "title": "Test-Title",
    "description": args.Test
    })

遇到的报错

当我在脚本里加了print(f"input: {args.Test}")来调试时,直接抛出了Unicode编码错误:

Traceback (most recent call last):
  File "D:\GitLab-Runner\builds\yxFfC2Egu\0\SPS_Entwicklung\test\ci-dev-test\script.py", line 14, in <module>
    print(f"input: {args.Test}")
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python313\Lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'charmap' codec can't encode character '\u251c' in position 7: character maps to <undefined>

环境和我已经尝试过的操作

  • 我的Runner是Windows 11系统,用PowerShell作为执行shell
  • .gitlab-ci.yml文件本身是UTF-8编码的
  • 试过对字符串做各种encode()/decode()操作,但都没效果
  • 用chardet检测过输入编码,返回的是UTF-8
  • 还试过在PowerShell里设置[Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8,但问题依旧

我本来以为YAML和Python都默认用UTF-8处理字符串,但会不会是PowerShell默认用Windows-1252编码导致的冲突?实在没头绪了,求各位大佬给点提示!

备注:内容来源于stack exchange,提问作者Pukinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:19:49