使用Mozilla Universal Charset Detector侦测文件编码  又叫 UDE.CSharp

识别文件编码 识别字符集

首先在nuget下载安装UED

使用样例如下:

private void btnImport_Click(object sender, EventArgs e)
{
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.DefaultExt = ".txt";
    dlg.Filter = "txt文件|*.txt";
    if (dlg.ShowDialog() == System.Windows.Forms. DialogResult.OK)
    {
        _list.Clear();
        string filename = dlg.FileName;

        //使用Mozilla Universal Charset Detector侦测文件编码
        string charset = "UTF-8";
        using ( FileStream fs = File .OpenRead(filename))
        {
            Ude. CharsetDetector cdet = new Ude.CharsetDetector ();
            cdet.Feed(fs);
            cdet.DataEnd();
            if (cdet.Charset != null)
            {
                charset = cdet.Charset;
            }
        }

        string[] lines = File.ReadAllLines(filename, Encoding.GetEncoding(charset));

        foreach ( var line in lines)
        {
            //去重
            if (_list.IndexOf(line) == -1)
            {
                _list.Add(line);
            }
        }
    }
}
本文为“老吴笔记”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注