首先,如果仅只是中文出现乱码,应该不是病毒的原因,病毒应该没那么聪明,只修改中文。
于是,这应该涉及到C#对字符集的支持,Encoding是各种编码类的基类,而继承该类的类,主要是下面四个类:ASCIIEnconding、Unicoding、UTF7Encoding、UTF8Encoding,它们分类用来对不同字符集的支持 。
如ASCIIEnconding是对美国标准码的支持,可以理解为是对ASCII码的支持,该编码采用8位二进制数,最高位全为0,但可以表示玩所有的字母,和那么几个统一字母符号。
UTF7Encoding、UTF8Encoding这两个与是一个不同的是采用了16位二进制编码,因而能够表示更多的字符,就拿汉子来说,8位是不能够表示玩所有的汉字,因而需要16位来表示。
而Unicoding就是解决世界各地字符不统一,编码方式不同,而使用的16位编码方式,用以统一各地字符,统一交流。
说了这么多,我猜测你的问题应该是同字符集有关,可能是中文字体发生了改变,又或是设置成了某种不支持的字符编码。 |