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
相关产品推荐
相关产品推荐

