2017-04-02 261 views
0

所以我有这种方法,从文本文件打印出几行到一个列表视图,但每当它做到这一点,它需要像“Ååää,Öö”字符,并使他们像三角形和东西怪异的符号。 我试图将它们转换为UTF-8字符,但它给了我相同的输出。为什么我的字符串输出打印出奇怪的字符?

private void btnSort_Click(object sender, EventArgs e) 
{ 
    //Convert to utf8 

    string[] Accounts = File.ReadAllLines(filePath); // if null do something 

    foreach (string account in Accounts) 
    { 
     ListViewItem lvi = new ListViewItem(account); 
     listView1.Items.Add(lvi); 
    } 

} 

这是文本文件列表的样子

Grä[email protected]
Åkerströ[email protected]

是的,这就是它。

+0

'File.ReadAllLines'具有重载使用一个编码。用任何用于该文件的编码调用它(显然不是UTF8) –

+0

找到它!谢谢你,先生! –

回答

1

File.ReadAllLines有一个需要编码的重载。用任何用于该文件的编码调用它(显然不是UTF8)

+0

是的,posten我自己的答案,但我会标记你的几分钟内接受。 –

0

正如@KevinGosse指出的那样,File.ReadAllLines()有一个重载需要编码,并且这组字符所需的编码是UTF-7

工作代码

private void btnSort_Click(object sender, EventArgs e) 
     { 
      //Convert to utf8 

      string[] Accounts = File.ReadAllLines(filePath, Encoding.UTF7); // if null do something 

      foreach (string account in Accounts) 
      { 
       ListViewItem lvi = new ListViewItem(account); 
       listView1.Items.Add(lvi); 
      } 

     }