概述
问题背景:
使用GalaSoft.MvvmLight写个WPF小应用。通过VS的Nuget管理器安装GalaSoft.MvvmLight。然后在安装MvvmLight时自动生成的MainViewModel.cs源文件中写入了中文的代码逻辑。
问题现象:
源代码中有中文字符串的比较逻辑(类似:str=="中文"),比较结果永远是false。通过调试查看str值以及监视str=="中文"的结果,却可以得到true的结果。
问题原因:
通过Nuget管理器安装GalaSoft的MvvmLight时,会自动添加两个类文件(MainViewModel.cs和ViewModelLocator.cs)。而生成的MainViewModel.cs文件的编码格式为GB2312,所以在文件中写入中文后,再经过编译就会变成乱码,导致逻辑异常。
后面把系统语言换成英文后,自动生成的MainViewModel.cs文件的格式为UTF8,然后再把系统语言换回中文,自动生成源文件的编码格式还是UTF8。所以并不知道之前是抽了什么风,给我用GB2312格式生成源文件。
转载于:https://www.cnblogs.com/MXJ-Blogs/p/9146183.html
最后
以上就是故意鸭子为你收集整理的编码格式引发的血案的全部内容,希望文章能够帮你解决编码格式引发的血案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复