c#

时间:2017-09-22 10:07:29

标签: c# csv character-encoding

我创建了一个C#soft,它将CSV作为参数包含一个文件夹列表,如:

enter image description here

我读了这段代码的文件:

public projectTree(string _path) 
    { 
        path = _path; 
        try 
        { 
            confFile = File.ReadAllText(path); 
        } 
        catch (Exception ex) 
        { 
            MessageBox.Show(ex.Message, "Fichier", MessageBoxButtons.OK, MessageBoxIcon.Error); 
        } 
        lines = confFile.Split('\n'); 
        foreach (string line in lines) 
        { 
            try 
            { 
                FolderInfo tmp = new FolderInfo(); 
                if (line.IndexOf(';') >= 0) 
                { 
                    if (line.Split(';')[1].Count() > 0) 
                        tmp.name = line.Split(';')[1]; 
                    else 
                        tmp.valid = false; 
                    if (line.Split(';')[2].Count() > 0) 
                        tmp.RACL_ReadOnly = line.Split(';')[2]; 
                    else 
                        tmp.valid = false; 
                    if (line.Split(';')[3].Count() > 0) 
                        tmp.RACL_Users = line.Split(';')[3]; 
                    else 
                        tmp.valid = false; 
                    if (line.Split(';')[4].Count() > 0) 
                        tmp.RACL_Managers = line.Split(';')[4]; 
                    else 
                        tmp.valid = false; 
                    if (line.Split(';')[5].Count() > 0) 
                        tmp.RACL_Partners = line.Split(';')[5]; 
                    else 
                        tmp.valid = false; 
                    if (tmp.valid == true) 
                    { 
                        ACLs.Add(tmp); 
                    } 
                } 
            } 
            catch 
            { 
                return; 
            } 
        } 
    } 

此列表中的软创建文件夹,但在创建“02-Ôlololéééèèç”文件夹时,该文件夹创建为:

enter image description here

我该如何处理这个角色?

1 个答案:

答案 0 :(得分:1)

读取文件时,请务必指定编码 - 尤其是在读取非UTF-8编码文件时。如果您不确定文件的编码,可以在See file encoding in Notepad++或任何其他能够处理各种编码的文本编辑器中打开它,只需查找:

doc

Wester欧洲语言的默认ANSI编码是Windows 1252,因此您需要将阅读线更改为:

confFile = File.ReadAllText(path, Encoding.GetEncoding(1252));