时间:2021-05-20
本文实例讲述了C#读取中文文件出现乱码的解决方法。分享给大家供大家参考。具体分析如下:
先来看这段代码:
FileStream aFile = new FileStream(SingleFile,FileMode.Open);StreamReader sr = new StreamReader(aFile,Encoding.GetEncoding("gb2312"),true);string FileContent = sr.ReadToEnd();aFile.Close();ProcessData Pd = new ProcessData();Pd.ProceData(FileContent);StreamReader 使用3个参数 最后一个自动检测utf-8,中文大部分是gb2312,如果不是utf-8,就用gb2312
系统自带utf 检测 ,见如下:
private void DetectEncoding(){ if (this.byteLen >= 2) { this._detectEncoding = false; bool flag = false; if ((this.byteBuffer[0] == 0xfe) && (this.byteBuffer[1] == 0xff)) { this.encoding = new UnicodeEncoding(true, true); this.CompressBuffer(2); flag = true; } else if ((this.byteBuffer[0] == 0xff) && (this.byteBuffer[1] == 0xfe)) { if (((this.byteLen < 4) || (this.byteBuffer[2] != 0)) || (this.byteBuffer[3] != 0)) { this.encoding = new UnicodeEncoding(false, true); this.CompressBuffer(2); flag = true; } else { this.encoding = new UTF32Encoding(false, true); this.CompressBuffer(4); flag = true; } } else if (((this.byteLen >= 3) && (this.byteBuffer[0] == 0xef)) && ((this.byteBuffer[1] == 0xbb) && (this.byteBuffer[2] == 0xbf))) { this.encoding = Encoding.UTF8; this.CompressBuffer(3); flag = true; } else if ((((this.byteLen >= 4) && (this.byteBuffer[0] == 0)) && ((this.byteBuffer[1] == 0) && (this.byteBuffer[2] == 0xfe))) && (this.byteBuffer[3] == 0xff)) { this.encoding = new UTF32Encoding(true, true); this.CompressBuffer(4); flag = true; } else if (this.byteLen == 2) { this._detectEncoding = true; } if (flag) { this.decoder = this.encoding.GetDecoder(); this._maxCharsPerBuffer = this.encoding.GetMaxCharCount(this.byteBuffer.Length); this.charBuffer = new char[this._maxCharsPerBuffer]; } }}希望本文所述对大家的C#程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。复制代码代码如下
本文实例讲述了PHP附件下载中文名称乱码的解决方法。分享给大家供大家参考,具体如下:PHP中,如果要下载的文件名称为中文,则会出现文件标题乱码。此时就需要对标题
本文实例讲述了php使用fgetcsv读取csv文件出现乱码的解决方法。分享给大家供大家参考。具体分析如下:一般来说在php中碰到乱码多半是编码问题,在这里我们
使用pythonpdfkit生成pdf文件中遇到中文乱码问题1.生成的文件名不能带有中文字符2.生成的pdf内容中文为乱码生成的文件名不能带有中文字符解决方法:
开时始,得到的中文文件中的字符是乱码的,鸟符号看的头晕。于是就细究streamreader读取的编码格式,默认的编码是ascii,单字节的,就尝试utf8,乱码