2

非常感谢您到现在为止的所有帮助。

我有以下问题:

 static void Main(string[] args)

    {
        Dictionary<string, string> dict = new Dictionary<string, string>();

        using (StreamReader reader = new StreamReader(@"C:\test.csv"))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                string[] parts = line.Split(',');
                dict.Add(parts[0],parts[1]);
            }
        }
        Console.WriteLine("enter name:");
            string name  = Console.ReadLine();
            if (dict.ContainsKey(name))
            {
                //
                string value = dict[name];
                Console.WriteLine(dict[name]);//value);
            }
            Console.ReadLine();

    }
}

这是我的输出:

enter name:
ILIA
????

这是我的 CSV 文件内容

ILIA,ИЛИЯ

你能帮我解决这个问题吗????并获得西里尔文的正确符号?

提前感谢您的帮助!

伊利亚

4

3 回答 3

1

尝试 :

StreamReader reader = new streamReader(@"C:\test.csv",Encoding.GetEncoding(1251)) ;
于 2015-07-09T21:32:53.807 回答
0

您的控制台的输出编码可能设置为 ASCII。在写入控制台之前尝试添加以下命令:

Console.OutputEncoding = System.Text.Encoding.Unicode;

您为控制台选择的字体也可能不支持 Unicode。要解决此问题,请打开命令控制台,单击窗口左上角显示“C:\”的图标。选择属性。选择字体。尝试选择不同的字体。

于 2015-07-09T21:27:43.870 回答
0

前段时间在用西里尔文阅读文件时,我注意到了这个令人不快的问题。最简单的解决方案 - 在 Notepad++ 或任何类似的可以更改编码的文本编辑器中打开文件,然后从菜单 Encoding -> Convert to UTF-8 中进行选择。然后您的文件将使用您的代码正确处理

于 2015-07-09T21:33:40.593 回答