2012-04-23 3 views
0

Мой текстовый файл содержит символы, такие как ö, ä, ü, и файл закодирован в ANSI. Я хочу прочитать его и поместить все данные в datatable. Мой код:Чтение текстового файла, закодированного [ANSI] в C#

private DataTable GetTextToTable(string path) 
    { 
     try 
     { 
      DataTable dataTable = new DataTable(); 
      int rowNo = 0; 
      using (StreamReader sr = new StreamReader(path,Encoding.Default,true)) 
      { 
       DataRow dr = null; 
       String line; 
       while ((line = sr.ReadLine()) != null) 
       { 
        dr=dataTable.NewRow(); 
        if (rowNo == 0) 
        { 
         string[] Columns = line.Split(new string[] { "\t" }, StringSplitOptions.None); 
         for (int i = 0; i != Columns.Length; i++) 
         { 
          DataColumn dc = new DataColumn(); 
          dc.ColumnName = Convert.ToString(Columns[i]); 
          dataTable.Columns.Add(dc); 
         } 
         rowNo = rowNo + 1; 
        } 
        else 
        { 

         string[] ColumnsValue = line.Split(new string[] { "\t" }, StringSplitOptions.None); 
         for (int i = 0; i != ColumnsValue.Length; i++) 
         { 
          dr[i] = ColumnsValue[i]; 
         } 
         dataTable.Rows.Add(dr); 
        } 

       } 
      } 
      return dataTable; 
     } 
     catch (Exception e) 
     { 
       throw new Exception(e.Message); 
     } 

    } 

И выход, я получаю от этого кода: ¿½ для ö и таким же образом получать произвольную комбинацию символов, в остальном, типа ü гольцов также. так помогите мне! Спасибо заранее!

+4

«ANSI» не является конкретной кодировкой. Множество разных кодировок часто называют «ANSI» или (что еще хуже) «расширенным ASCII». Вы должны узнать * точное кодирование файла и использовать его. –

+0

Похоже, что файл _actually_ UTF8, который использует многобайтовые последовательности. – SLaks

+0

http://www.joelonsoftware.com/articles/Unicode.html, хорошая ссылка на просмотр за :) – bas

ответ

0

Мое предложение было бы загрузить что-то вроде WinHex (что бесплатно), что позволит вам посмотреть на файл в шестнадцатеричном формате, который может помочь вам найти вашу проблему.

Это всего лишь предположение, но похоже, что ваша программа читает шестнадцатеричный шестнадцатеричный текст и не предлагается преобразовать его в ASCII. EDIT Или любой формат кодировки используется файлом, который вы читаете.

+0

Большое спасибо за ответы. @ Jon Skeet sir, Можете ли вы дать мне ссылку/справку, используя которую я могу найти точное кодирование, используемое в этом текстовом файле, который говорит ANSI, закодированный, как в моем текстовом файле примера. – vicky