.Net Core踩坑记:读取txt中文乱码
迁移.net framework的项目,有块读取txt中文转码的问题,普通的不能再普通的代码,想都没想直接copy过去,也没测,结果今天就被坑了。Core是3.1版本,这是原来的代码: string content = System.IO.File.ReadAllText(fileFullPath, Encoding.Default); System.IO.File.WriteAllText(fileFullPath, content, Encoding.UTF8); 很基础的功能,网上一搜一大堆。但是Core直接运行读取中文还是乱码,看似一个小问题,百度之,渐渐的发现这是一个小坑坑,于是乎,开始刨根问底。 首先发现两个环境下 Encoding.Default 这个东西是不同的。官方API解释: 链接 瞅瞅这是人话吗,为什么Core就始终返回utf8呢?看了一眼.net framework下的 Encoding.Default,是这个东东。 所以换个编码就应该就OK了(当然中文本来就是GB2312),结果现实啪啪打脸,居然报错了(脑补一个笑哭的表情)。 string content1 = System.IO.File.ReadAllText(filePath, Encoding.GetEncoding( " GB2312 " )); 官方API解释: Encoding