这两天比较闲就找了个国外的开源商城项目SmartStoreNET想学习学习。
SmartStoreNET的github地址:https://github.com/smartstoreag/SmartStoreNET
用vs2017打开项目
从github下载下来后,还原Nugget包并编译,编译报错。一看是语法错误而且这写法没有见过,一查才发现是C#7.0的新特性,vs2015不支持C#7.0,只好用vs2017打开了。
乱码问题
用vs2017打开项目进行编译,又发现错误“常量中含有换行符”。打开错误所在的页面弹出了“使用简体中文(GB2312)编码加载文件xxxx时”的提示。
进入页面发现页面出现乱码
出现错误的地方是符号错误,很明显的引号变成了问号(?)
3个页面中都出现了这种错误,‘ ”’变成了“?”。符号很好改正,乱码可是不好解决。
百度上的一些方法都试过了,比如:
用vs2017的“高级保存”选项另存为utf-8格式;
用记事本、notepad++把文件另存为utf-8格式;
给vs安装插件:“工具->扩展和更新->联机,然后搜索ForceUTF8”强制转换格式。
这些都不行。
看到博客园的一篇文章说的很有道理,打开这些国外的代码文件出现乱码的是:ANSI编码是给电脑识别的,它呢又有很多种,中国大陆的是GB2312、日本是JIS。我们的电脑根据系统的地域设置在转换这些文件的时候就已经转换错了,你再根据这个(错误的)文件再怎么转换格式也变不成原本的文件。
文章地址:ANSI编码导致的乱码
解决方法:
修改电脑的区域位置。控制面板-区域和语言-管理-更改系统区域设置
选择语言(文件提交者所使用的语言,比如:英语(美国))
重启电脑。(第一次执行这个操作可能要等上40多分钟才能完成重启 )
重启后将这几个文件用记事本打开文件另存为utf-8格式,再将区域设置回“中文(简体,中国)”,重启电脑。
打开另存的utf-8格式的文件,一切正常。