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

Ubuntu 20.04上.NET项目构建失败:特殊字符'ë'显示异常

问题分析与解决办法

核心问题是Ubuntu环境下文件编码被识别为ISO-8859,导致UTF-8特殊字符ë解析乱码,触发C#编译错误CS1002。

关键原因

两台服务器locale均为en_US.UTF-8,但Git在Ubuntu拉取文件时默认采用了ISO-8859编码,而CentOS上文件是UTF-8(带BOM),编码不匹配引发字符解析失败。

解决步骤

  • 强制Git使用UTF-8编码拉取代码
    在Ubuntu服务器执行以下全局配置命令:

    git config --global core.encoding utf-8
    git config --global gui.encoding utf-8
    git config --global i18n.commitencoding utf-8
    git config --global i18n.logoutputencoding utf-8
    

    随后删除本地仓库,重新拉取:

    rm -rf your-project-folder
    git clone your-repository-url
    
  • 验证文件编码
    拉取完成后,用file命令检查Program.cs的编码:

    file Program.cs
    

    正常输出应包含UTF-8标识。

  • 添加项目编译编码配置(可选)
    若Git配置后仍有问题,可在项目的.csproj文件中添加以下配置,强制编译时使用UTF-8:

    <PropertyGroup>
      <CodePage>65001</CodePage> <!-- 指定UTF-8编码页 -->
    </PropertyGroup>
    

补充说明

UTF-8带BOM在Windows环境较为常见,Linux下Git对BOM的处理逻辑不同,但核心是保证拉取和编译阶段统一使用UTF-8编码,从根源避免字符解析错误。

内容的提问来源于stack exchange,提问作者THEoneANDonly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:32:32