我已将CI工具切换为在Linux上调用dotnet build
,而我之前在Windows上执行此操作。然后我突然在我的应用程序中出现了一个错误。
我正在将从数据库读取的变量与从方法返回的字符串文件(直接在代码中)进行比较。字符串litteral有法国口音。存储在db(SQL Server)中的值也是如此。
但是,执行字符串比较的行在Windows上构建时返回true,但从Linux构建时返回false。
怎么回事?
更新
这里显示了问题的异常消息:
throw new ArgumentOutOfRangeException(nameof(modeDePaiement), modeDePaiement, "Mode de paiement non supporté");
显示错误时,modeDePaiement
在从Windows或Linux构建时都等于“prélèvement”。
然而,它与AS WELL比较的值与错误消息中的“supporté”一词并没有同等显示:当从Linux构建时,“é”被替换为某个符号,而在构建时则正确显示视窗。
从Linux或Windows构建时,代码中的字符串似乎不会以相同的方式编码。