2013-02-12 2 views
0

Я делаю adz collector, поэтому я получаю объявление с веб-сайта, и я беру html, получаю заголовок, цену, описание. И продолжайте вводить в DataTable в конце экспорт DataTable в CSV.But данного вопроса текст хорошо в коде, но когда его экспорт в CSV его, как:Текст преобразуется в символы

· 75% of the Controller’s time will focus on accounting: Their role includes: o 
Bookkeeping o Payroll o Monthly HST o Trust accounting; Ensuring compliance with the  Real 
Estate Council requirements o Financial Statement Preparation · 25% Will be  management 
functions: o Supervise and assist with conveyancing o Supervise all the office staff (4 - 
6) o Other day to day management functions. Requirements and Qualifications Essential 
Skills · Experience working with government regulated financial reporting · Experience 
working with large numbers of people in a customer service oriented role ·  Experience with 
Trust Accounting Additional Assets .... 

есть Symboles везде, код я использую для экспорта ниже:

public void DataTable2CSV(DataTable table, string filename, string seperateChar) 
    { 

     StreamWriter sr = null; 

     try 
     { 

      sr = new StreamWriter(filename, true); 
      string seperator = ""; 
      StringBuilder builder = new StringBuilder(); 


       foreach (DataColumn col in table.Columns) 
       { 

        builder.Append(seperator).Append(col.ColumnName); 

        seperator = seperateChar; 
       } 

       sr.WriteLine(builder.ToString()); 


      foreach (DataRow row in table.Rows) 
      { 

       seperator = ""; 
       builder = new StringBuilder(); 
       foreach (DataColumn col in table.Columns) 
       { 

        builder.Append(seperator).Append(row[col.ColumnName]); 
        seperator = seperateChar; 

       } 

       sr.WriteLine(builder.ToString()); 

      } 

     } 

     finally 
     { 

      if (sr != null) 
      { 

       sr.Close(); 

      } 

     } 

    } 
+0

+1 +1 вопрос. Я использовал CharacterSet = 659001, импортирующий CSV. – aspiring

ответ

2

У вас есть путаница в кодировке текста. Другими словами, кодирование данных, которые вы пишете в CSV-файл, не соответствует кодировке, ожидаемой средством просмотра CSV (например, Excel).

Более подробно см

Character Encoding and the ’ Issue

В частности, например, € ™, это типичный кодировка CP1252 представление символа Unicode 'ПРАВЫЙ SINQLE КАВЫЧКА' (U + 2019) ", который был прочитан с использованием UTF-8. В UTF-8 этот символ существует из байтов 0xE2, 0x80 и 0x99. Если вы проверите компоновку кодовой страницы CP1252, вы увидите, что эти байты представляют точно символы â, € и ™.

Смежные вопросы