- 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);
- 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];
- }
- }
- }
来源: http://www.phpxs.com/code/1004569/