2017-04-02 145 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); 
      } 

     }