签出 EFCore 源码,用 build.cmd 命令进行编译,总是出现下面的错误:
C:\Dev\github\EntityFrameworkCore\src\EFCore.Specification.Tests\TestModels\ConcurrencyModel\F1Context.cs(526,28): error CS1010: Newline in constant
用 VS2017 打开 F1Context.cs 文件,会出现下面的提示:
Some bytes have been replaced with the Unicode substitution character while loading file C:\Dev\github\EntityFrameworkCore\src\EFCore.Specification.Tests\TestModels\ConcurrencyModel\F1Context.cs with Chinese Simplified (GB2312) encoding. Saving the file will not preserve the original file contents.
被 VS2017 转码后,F1Context.cs 中出现乱码
new TestDriver
{
Name = "Marc Gen?,
TeamId = Team.Ferrari,
CarNumber = null,
编译错误就是因为乱码引起的。
请问如何解决这个问题?
F1Context.cs 的文件编码是 ANSI
打开 Control Panel
-> Clock, Language, and Region
,进入 Region
-> Administrative
,将 Language for non-Unicode programs
由 Chinese(Simplified, China)
改为 English(United States)
,问题解决。
这一般是欧洲字符造成的,我用的方法找到这个文件,用Nodepad++打开,转成UTF-8编码之类的,然后再用VS打开就没问题了。
或者你直接修改也行
Name="Marc Gen"
反正是字符串,改了就改了。