(char)可以显式转化Int16,有些怎么转化不了?
刚刚学习第一个编程语言c#两天半,问个很菜的问题用FileStream.ReadByte()和StreamReader.Read()读出的字节都是强制转化为Int32(不论以何种编码方式读取),用(char)只能显式转化成字符并输出,英文、中文、通用符号都没有问题,如文档中“H”被读取后,Int32值为72,转化为字符后能还原成“H”并输出,但是文档中“Æ”这个字符被读取后,Int32值为198,(char)转化后显示为“?”,是什么原因呢?有什么办法能解决此类读取后输出问题?
请好心人帮忙解答困惑,Orz 谢!
PS:“Æ”字符在记事本中的输入可以按住Alt键+数字键198,松开Alt后显示。还有很多其他奇怪的字符也是这样。
--------------------编程问答-------------------- 字符集问题...ASCII字符集的范围0-127,198已经超出范围了...去看MSDN去google字符集的概念... --------------------编程问答-------------------- 还有就是用FileStream.ReadByte()读取文档内容时常会多出一部分“文件头”,就是在文档内容前还会读出一些东西,这是什么? --------------------编程问答-------------------- 在StreamReader(Stream,Encoding)中已经限定了字符集了,(char)只能转化ASCII字符集中的字符么?,也就是0-127的内容?要是遇到127以外的呢?怎么变? --------------------编程问答-------------------- 两字节的汉字显然超过了127,但是(char)可以显示转换成汉字。
补充:.NET技术 , C#