A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 硬别 中级黑马   /  2013-10-7 14:19  /  1633 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 硬别 于 2013-10-14 16:26 编辑

以前做入学测试写出来的程序,里面包含了中文,但是今天打开的时候发现是乱码,求解答?

7 个回复

倒序浏览
你是用了不同版本的VS 打开的吧? 有时候不同版本的,会出现这种问题
回复 使用道具 举报
我一直在等待 发表于 2013-10-7 14:26
你是用了不同版本的VS 打开的吧? 有时候不同版本的,会出现这种问题

哦 也许是吧 我再去下载个试试
回复 使用道具 举报
硬别 发表于 2013-10-7 14:28
哦 也许是吧 我再去下载个试试

恩 尽量在编写程序的时候不要用中文。可以避免这类的事情在发生。

回复 使用道具 举报
以前编写的程序感染了病毒,文件被损坏了。
回复 使用道具 举报
用记事本打开,看看能看不能。不行就用高级点的编辑器,换个编码
回复 使用道具 举报
.cs后缀的文件用记事本打开(默认ANSI编码打开)的也乱码,说明真的是被病毒破坏了。
回复 使用道具 举报
曹华 中级黑马 2013-10-12 23:52:02
8#
首先,如果仅只是中文出现乱码,应该不是病毒的原因,病毒应该没那么聪明,只修改中文。
于是,这应该涉及到C#对字符集的支持,Encoding是各种编码类的基类,而继承该类的类,主要是下面四个类:ASCIIEnconding、Unicoding、UTF7Encoding、UTF8Encoding,它们分类用来对不同字符集的支持 。
如ASCIIEnconding是对美国标准码的支持,可以理解为是对ASCII码的支持,该编码采用8位二进制数,最高位全为0,但可以表示玩所有的字母,和那么几个统一字母符号。
UTF7Encoding、UTF8Encoding这两个与是一个不同的是采用了16位二进制编码,因而能够表示更多的字符,就拿汉子来说,8位是不能够表示玩所有的汉字,因而需要16位来表示。
而Unicoding就是解决世界各地字符不统一,编码方式不同,而使用的16位编码方式,用以统一各地字符,统一交流。
说了这么多,我猜测你的问题应该是同字符集有关,可能是中文字体发生了改变,又或是设置成了某种不支持的字符编码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马